limit_zone and nginx worker crashing

Matthieu Tourne matthieu.tourne at gmail.com
Wed May 25 04:24:53 MSD 2011


Hi,

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 ?

Thanks!

Matthieu.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-devel/attachments/20110524/1a65fb40/attachment.html>


More information about the nginx-devel mailing list