[20150701]
- [pypy] fixed misuse of ffi.string
- fixed detection for gcc 5 (jimfunk)
- fixed shared sockets for gateways
- [psgi] Changed abs to labs because offset is declared as a long (Peter H. Ezetta)
- add null terminator to uwsgi_get_dot_h() and uwsgi_config_py() (Jay Oster)
- fixed thread waiting during stop/restart (Kaiwen Xu)
- fixed chain reloading verbosity
- [python] fixed spooler job reference counting (Curtis Maloney)
- various static analysis improvements (Riccardo Magliocchetti)
- fixed sharedarea support for very big ranges
- fixed gzip transformation for zero-sized responses (Curtis Maloney)
- fixed management of https client certificate authentication (Vladimir Didenko)
- fixed OpenBSD build
- fixed TMPFILE permissions
Evil memory monitors (like --evil-reload-on-rss) are now asynchronously managed by a dedicated thread.
This solves the issue of runaway processes not catched by the master.
This is another step in removing the need of the infamous uwsgi_modifier1 30 relic.
This routing action assumes the PATH_INFO cgi var has the SCRIPT_NAME part included.
This action allows you to set SCRIPT_NAME in nginx without bothering to rewrite the PATH_INFO (something nginx cannot afford)
[uwsgi]
; blindly assumes PATH_INFO is clobbered with SCRIPT_NAME
route-run = fixpathinfo:
This two new vars exposes the start of the current request (in micros) and the current time (again in micros)
[uwsgi]
route-run = log:request started at ${uwsgi[sor]}
route-run = log:current micros time is ${time[micros]}
This works like wait-for-fs/iface/file/dir
The spawn of the instance is suspended until the specified tcp/unix socket is ready.
You can use it to synchronize vassals spawn (like stopping a vassal until a postgresql server has been spawned)
All of the wait-for-* functions can now be used as a hook:
[uwsgi]
; wait for postgres soon after privileges drop
hook-as-user = wait_for_socket:127.0.0.1:5432
You can download uWSGI 2.0.11 from