limit_zone and nginx worker crashing
matthieu.tourne at gmail.com
Wed May 25 04:24:53 MSD 2011
I've noticed an issue when limit_zone (and probably limit_req) is used.
If an nginx worker crashes, the cleanup functions for that request will not
get called and the number of connections will not be decremented as it
should be in ngx_http_limit_zone_cleanup().
Since it's a shared memory segment when a new worker is started, the number
of connection is still at the same value.
So if a worker crashes multiple times, we might end up always returning '503
Service Temporary Unavailable'.
I'm not sure there would be a way to call the cleanup functions if a worker
has crashed, but maybe the rbtree for limit_zone should be re-initialized on
a respawn ?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the nginx-devel