uWSGI 2.0.11

[20150701]

Bugfixes

  • [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

New Features

The mem_collector thread

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.

fixpathinfo routing action

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)

  1. [uwsgi]
  2. ; blindly assumes PATH_INFO is clobbered with SCRIPT_NAME
  3. route-run = fixpathinfo:

uwsgi[sor] and time[micros] routing vars

This two new vars exposes the start of the current request (in micros) and the current time (again in micros)

  1. [uwsgi]
  2. route-run = log:request started at ${uwsgi[sor]}
  3. route-run = log:current micros time is ${time[micros]}

wait-for-socket

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)

wait_for hooks

All of the wait-for-* functions can now be used as a hook:

  1. [uwsgi]
  2. ; wait for postgres soon after privileges drop
  3. hook-as-user = wait_for_socket:127.0.0.1:5432

Availability

You can download uWSGI 2.0.11 from

https://projects.unbit.it/downloads/uwsgi-2.0.11.tar.gz