limit_zone and nginx worker crashing

Matthieu Tourne matthieu.tourne at
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...
URL: <>

More information about the nginx-devel mailing list