]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: If SIGINT idle-kill is ignored due to handling a new client, make sure...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 29 Oct 2025 17:44:15 +0000 (19:44 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 31 Oct 2025 10:02:18 +0000 (10:02 +0000)
Master should have been notified usually, but it could have been an
unimportant notification that was ignored due to write() returning EAGAIN.

src/lib-master/master-service.c

index 75a021e4764414e934a463ac54b2dd327c35c2d4..d39b43423ac1c3272ab3d4a983b47edaa74563fd 100644 (file)
@@ -114,8 +114,10 @@ static void sig_delayed_die(const siginfo_t *si, void *context)
                /* SIGINT came from master. die only if we're not handling
                   any clients currently. */
                if (service->master_status.available_count !=
-                   service->total_available_count)
+                   service->total_available_count) {
+                       master_status_send(service, TRUE);
                        return;
+               }
 
                if (service->idle_die_callback != NULL &&
                    !service->idle_die_callback()) {