diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2021-03-28 17:45:29 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2021-03-28 17:45:29 +0300 |
commit | fd0546aa33d2b28fc89753c15439f356485ad845 (patch) | |
tree | 133627774de6b6c1baea049a4eb20cf96b347fd1 | |
parent | c108f04e85a15f4e1cc700b41999a92ce09a889d (diff) | |
download | nginx-fd0546aa33d2b28fc89753c15439f356485ad845.tar.gz nginx-fd0546aa33d2b28fc89753c15439f356485ad845.zip |
Events: fixed "port_dissociate() failed" alerts with eventport.
If an attempt is made to delete an event which was already reported,
port_dissociate() returns an error. Fix is avoid doing anything if
ev->active is not set.
Possible alternative approach would be to avoid calling ngx_del_event()
at all if ev->active is not set. This approach, however, will require
something else to re-add the other event of the connection, since both
read and write events are dissociated if an event is reported on a file
descriptor. Currently ngx_eventport_del_event() re-associates write
event if called to delete read event, and vice versa.
-rw-r--r-- | src/event/modules/ngx_eventport_module.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/event/modules/ngx_eventport_module.c b/src/event/modules/ngx_eventport_module.c index f67c70457..d304e1c91 100644 --- a/src/event/modules/ngx_eventport_module.c +++ b/src/event/modules/ngx_eventport_module.c @@ -399,7 +399,7 @@ ngx_eventport_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) return NGX_ERROR; } - } else { + } else if (ev->active) { ngx_log_debug1(NGX_LOG_DEBUG_EVENT, ev->log, 0, "eventport del event: fd:%d", c->fd); |