Close logs after daemon-process exceptional write. Bug 728
authorJeremy Harris <jgh146exb@wizmail.org>
Tue, 25 Aug 2015 09:36:27 +0000 (10:36 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Tue, 25 Aug 2015 09:36:27 +0000 (10:36 +0100)
doc/doc-txt/ChangeLog
src/src/daemon.c

index 0ec296470d5d266a0f5fbde3bc98beb689f5dc26..cb43f0f108630cbf2569ffba91282f4564008357 100644 (file)
@@ -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
 -----------------
index 2d10387f6345fd21706cee946431ceeefe20c722..e1ff9a16ff9959c290e147826f36af84a7d025cd 100644 (file)
@@ -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;
 }