mirror of
https://github.com/nginx/nginx.git
synced 2026-10-24 14:47:45 -05:00
Core: delete accept timer on worker shutdown
Previously, when the worker file descriptor table was full, a listen connection might be disabled and a timeout might be set for re-enabling it. If during this period the worker received the NGX_CMD_QUIT signal, the accept connection would be recycled, but the timer would remain set. On timer expiration, an attempt to accept a new connection would result in "accept4() failed (9: Bad file descriptor)" alert because c->fd was reset to -1. Fix is to delete accept timer when closing listen connections.
This commit is contained in:
1 parent
ee03ec42c4
commit
76364bdd29
1 file changed
+4
@@ -1166,6 +1166,10 @@ ngx_close_listening_sockets(ngx_cycle_t *cycle)
|
||||
}
|
||||
}
|
||||
|
||||
if (c->read->timer_set) {
|
||||
ngx_del_timer(c->read);
|
||||
}
|
||||
|
||||
ngx_free_connection(c);
|
||||
|
||||
c->fd = (ngx_socket_t) -1;
|
||||
|
||||
Reference in new issue
Block a user