| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
from https://raw.githubusercontent.com/php/php-src/PHP-8.2/UPGRADING.INTERNALS:
======================== 5. SAPI changes ======================== * The signature of php_module_startup() has changed from int php_module_startup(sapi_module_struct *sf, zend_module_entry +*additional_modules, uint32_t num_additional_modules) to zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry +*additional_module) as only one additional module was ever provided.
|
| |
|
|
|
| |
Failing to use this value will result in enconding errors when logging
unicode characters to stderr
|
| |
|
|
|
|
| |
In py3 print is not a keyword, it is function, so it must be called with
parentheses. This fix compatible with py2 as it does not denies using
print as print().
|
| |\
| |
| | |
Ensure '-lrt' is included on the link line after linking to python li…
|
| | |
| |
| |
| | |
Python depends on clock_gettime() and other functions in librt. Nothing else in uwsgi has a dependency on librt so if this library is only specified early on the link line then the library is dropped by the linker.
|
| |\ \
| | |
| | | |
PHP: Fix php-app for php81
|
| | | | |
|
| |\ \ \
| | | |
| | | | |
Fix segfault from GEVENT_SWITCH
|
| | |/ / |
|
| |\ \ \
| |/ /
|/| | |
Add Python 3.11 support
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Use PyFrame_GetCode().
* Add PyFrame_GetCode() for Python 3.8 and older.
* Add UWSGI_PY311 macro: defined on Python 3.11 and newer.
* struct uwsgi_python: "current_recursion_depth" becomes
"current_recursion_remaining" and current_frame type becomes
_PyCFrame** on Python 3.11.
Related Python 3.11 changes:
* https://docs.python.org/dev/whatsnew/3.11.html#id6
* The PyFrameObject structure became opaque.
* PyThreadState.frame (PyFrameObject) became PyThreadState.cframe
(_PyCFrame) in Python 3.11.
* PyThreadState: recursion_depth was replaced with
recursion_remaining + recursion_limit.
|
| |\ \ \
| | | |
| | | | |
Use threading.current_thread, has existed since Python 2.6
|
| | | | | |
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This aims to fix intermittent build failures on some platforms (most
notably Debian Bullseye) which appear to be due to the use of
`os.system` from background threads. The exact nature of the issue
is unclear, however moving to `subprocess.call` appears to fix it.
Fixes https://github.com/unbit/uwsgi/issues/2447.
While there's more that could be done here to modernise these calls,
this aims to be a minimal change which introduces subprocess without
much intrusion.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
uWSGI did not call `.close()` on objects returned by
`wsgi.file_wrapper`. This resulted on `.close()` beeing called when the
gc managed to clean up the object (which apparently did not happen with
refcounting due to cyclic references) resulting in hard to debug errors.
|
| |\ \ \
| |/ /
|/| | |
fix(python-plugin): update internal interpreter state immediately upon forking
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
linking exception licensing model adopted with version 2.
Fixes #2401
|
| | | |
| | |
| | |
| | |
| | |
| | | |
filename is now a zend_string.
Refs #2394
|
| | | |
| | |
| | |
| | | |
fixes https://github.com/unbit/uwsgi/issues/2356
|
| |/ / |
|
| |\ \
| | |
| | | |
Allow to compile on Python versions with more that two digits (Python 3.10)
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The caller can now specify a custom iteration value when setting an
rb_timer.
The default is still zero if no third parameter is passed, i.e.:
uwsgi::add_rb_timer($signal, $interval);
Is the same as:
uwsgi::add_rb_timer($signal, $interval, 0);
|
| |/ /
| |
| | |
related to issues 2270 and 2293
|
| |\ \
| | |
| | | |
Document http-timeout default of 60 seconds
|
| | | |
| | |
| | |
| | | |
Refs #2264
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
plugins/gevent/gevent.c[thread 11]:
392:21: error: cast to smaller integer type 'PyGILState_STATE' from 'void *' [-Werror,-Wvoid-pointer-to-enum-cast]
PyGILState_Release((PyGILState_STATE) pthread_getspecific(up.upt_gil_key));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fix #2238
|
| | | | |
|
| | | |
| | |
| | |
| | | |
They are gone in PHP 8 and were inert since PHP 7.
|
| | | |
| | |
| | |
| | | |
Not supported upstream since years.
|
| |/ /
| |
| |
| |
| |
| | |
PyTuple_SetItem does NOT increment the item, so we need to do it
explicitly. Without this, then env gets a negative refcnt during the
deallocation of async_args, with all kinds of funny behaviors.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of the deprecated PyParser_SimpleParseString, PyParser_SimpleParseFile
and PyNode_Compile.
While at it fixup a possible null pointer dereference when uwsgi_open_and_read
returns an empty string.
See https://bugs.python.org/issue40939
|
| | |
| |
| |
| | |
As it's already called in Py_Initialize() there.
|
| | |
| |
| |
| |
| | |
Reference:
https://bugs.python.org/issue29548
|
| | |
| |
| |
| | |
Fixes compile error using Python 3.10 while keeping backwards compatibility
|
| | | |
|
| | | |
|
| | |
| |
| | |
Noticed an ipv6 --http-socket=[::]:80 had a bad port.
|
| |\ \
| | |
| | | |
Add chunked request decoding to the CGI plugin
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a request using 'Transfer-Encoding: chunked' is routed to the CGI
backend, the request body is now read and sent to the script chunk by
chunk, allowing for requests with dynamic body length to pass. The CGI
process's stdin is always closed after the last chunk has been written,
regardless of --cgi-close-stdin-on-eof.
A caveat is that it's only started to read the CGI process's output
after the full request body has been consumed, meaning a CGI script may
not start writing a response before it has read the entire body to avoid
getting blocked during the write operation to stdout.
Closes #2140
|
| |\ \ \
| |/ /
|/| | |
psgi: fix impossibility of determining the end of the chunked stream
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
len 0 and a pointer to a buffer filled with old data.
Based on the description: https://perldoc.perl.org/5.16.1/perlapi.html,
The newSVpv function in the case when the len is zero uses the strlen.
This makes it impossible to determine the end of the stream since the
last chunk returns endlessly.
|
| |\ \
| | |
| | | |
plugins/cgi: improve performance for santitizing file descriptors
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Only close file descriptors that are known to be open when /proc/self/fd
or /dev/fd exists. Fall back and loop over all when those are missing.
This improves performance significantly when number of max fds is high.
fixes #2053
|
| |\ \ \
| | | |
| | | | |
plugins/{pypy,python}: get rid of unnecessary paste.script dependency
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
paste.script.util.logging_config is an old copy of logging.config from
Python 2.5.1 (see [1]). There are no paste-specific details in it.
By using logging.config directly, Python WSGI environments no longer need to
have pastescript installed.
[1] https://bitbucket.org/wilig/pastescript/commits/04d0db6b2f5ab360bdaa5b10511d969a24fde0ec
|
| |\ \ \
| |_|/
|/| | |
fix psgi plugin for GCC 10
|
| | |/
| |
| |
| | |
Following guide here https://gcc.gnu.org/gcc-10/porting_to.html
|
| |/
|
| |
Adapt to removal of deprecated interfaces in gevent 1.5.0 still keep compatibility with gevent 1.1 & 1.2 series.
|