mirror of
https://github.com/nginx/nginx.git
synced 2026-10-21 11:31:24 +00: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:
parent
ee03ec42c4
commit
76364bdd29
1 changed files with 4 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue