From ba1c8f04a52d65e1c1226064c05758a058ac17ee Mon Sep 17 00:00:00 2001 From: Gabriel Clima Date: Mon, 23 Mar 2026 12:04:48 +0000 Subject: [PATCH] EPX-6: ngx_event_expire_timers core dump fix Every core dump is preceded by an error like the following: 2026/03/23 09:55:09 [error] 144659#144659: on_reconnect_timeout: state borrow: RefCell already borrowed The fix is largely slop so I need some time to understand it first. --- nginx_module/src/unix_socket.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nginx_module/src/unix_socket.rs b/nginx_module/src/unix_socket.rs index fe86db0..e43d616 100644 --- a/nginx_module/src/unix_socket.rs +++ b/nginx_module/src/unix_socket.rs @@ -273,7 +273,7 @@ impl Drop for State { } }, Self::Disconnected { event, .. } => unsafe { - if event.active() != 0 { + if event.timer_set() != 0 { ngx_event_del_timer(event.as_mut()); } }, @@ -601,6 +601,7 @@ unsafe extern "C" fn on_read(rev: *mut ngx_event_t) { ); } } + break; } } if is_connected { @@ -624,6 +625,7 @@ unsafe extern "C" fn on_read(rev: *mut ngx_event_t) { log_borrow_mut_error("on_read: state borrow (on_read)", error); } } + break; } } } else if result == 0 {