diff options
author | Max Romanov <max.romanov@nginx.com> | 2022-02-08 12:04:41 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2022-02-08 12:04:41 +0300 |
commit | 2b5941df74806d344c59ec0ca126b81cc7bbffe1 (patch) | |
tree | 653202ded2ce98760c5d4bc81b60ae11fd889db5 /docs | |
parent | e53ce40c5854d95722cdfc198626fcd5aecbe563 (diff) | |
download | unit-2b5941df74806d344c59ec0ca126b81cc7bbffe1.tar.gz unit-2b5941df74806d344c59ec0ca126b81cc7bbffe1.tar.bz2 |
Python: fixing incorrect function object dereference.
The __call__ method can be native and not be a PyFunction type. A type check
is thus required before accessing op_code and other fields.
Reproduced on Ubuntu 21.04, Python 3.9.4 and Falcon framework: here, the
App.__call__ method is compiled with Cython, so accessing op_code->co_flags is
invalid; accidentally, the COROUTINE bit is set which forces the Python module
into the ASGI mode.
The workaround is explicit protocol specification.
Note: it is impossible to specify the legacy mode for ASGI.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/changes.xml | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/docs/changes.xml b/docs/changes.xml index 64a35da8..a6b1178d 100644 --- a/docs/changes.xml +++ b/docs/changes.xml @@ -43,6 +43,13 @@ some Spring Boot applications failed to start, notably with Grails. </para> </change> +<change type="bugfix"> +<para> +incorrect Python protocol auto detection (ASGI or WSGI) for native callable +object, notably with Falcon. +</para> +</change> + </changes> |