From: Jeremy Harris Date: Tue, 25 Aug 2015 09:36:27 +0000 (+0100) Subject: Close logs after daemon-process exceptional write. Bug 728 X-Git-Tag: exim-4_87_RC1~107 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/c8899c20aa08c9ae6a4c291aad23ba90512bebe4 Close logs after daemon-process exceptional write. Bug 728 --- diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 0ec296470..cb43f0f10 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -18,6 +18,13 @@ TF/02 Improve the consistency of logging incoming and outgoing interfaces. outgoing_interface log selector which allows you to disable the outgoing I= field. +JH/02 Bug 728: Close logfiles after a daemon-process "exceptional" log write. + If not running log_selector +smtp_connection the mainlog would be held + open indefinitely after a "too many connections" event, including to a + deleted file after a log rotate. Leave the per net connection logging + leaving it open for efficiency as that will be quickly detected by the + check on the next write. + Exim version 4.86 ----------------- diff --git a/src/src/daemon.c b/src/src/daemon.c index 2d10387f6..e1ff9a16f 100644 --- a/src/src/daemon.c +++ b/src/src/daemon.c @@ -735,6 +735,7 @@ else (void)close(dup_accept_socket); /* Release any store used in this process, including the store used for holding the incoming host address and an expanded active_hostname. */ +log_close_all(); store_reset(reset_point); sender_host_address = NULL; }