[Pkg-mailman-hackers] Bug#505638: mailman: Mailman dies on log rotation

Ivan Marton martoni at niif.hu
Mon Jan 16 16:36:04 UTC 2012


Hi!

I've faced the same problem.
Package: mailman
Version: 1:2.1.13-5

My logfile (/var/log/mailman/qrunner) contains multiple SIGHUP and 
finally a SIGTERM signal per process.

Jan 15 06:25:31 2012 (12712) BounceRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:31 2012 (12711) ArchRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:32 2012 (12714) IncomingRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:32 2012 (12716) OutgoingRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:32 2012 (12717) VirginRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:34 2012 (12714) IncomingRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:34 2012 (12711) ArchRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:34 2012 (12717) VirginRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:34 2012 (12716) OutgoingRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:34 2012 (12712) BounceRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:34 2012 (12710) Master watcher caught SIGHUP.  Re-opening 
log files.
Jan 15 06:25:34 2012 (12712) BounceRunner qrunner caught SIGTERM.  Stopping.
Jan 15 06:25:34 2012 (12712) BounceRunner qrunner exiting.
Jan 15 06:25:34 2012 (12714) IncomingRunner qrunner caught SIGTERM. 
Stopping.
Jan 15 06:25:34 2012 (12714) IncomingRunner qrunner exiting.
Jan 15 06:25:34 2012 (12711) ArchRunner qrunner caught SIGTERM.  Stopping.
Jan 15 06:25:34 2012 (12716) OutgoingRunner qrunner caught SIGTERM. 
Stopping.
Jan 15 06:25:34 2012 (12716) OutgoingRunner qrunner exiting.
Jan 15 06:25:35 2012 (12717) VirginRunner qrunner caught SIGTERM.  Stopping.
Jan 15 06:25:35 2012 (12717) VirginRunner qrunner exiting.
Jan 15 06:25:35 2012 (12715) NewsRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:36 2012 (12715) NewsRunner qrunner caught SIGTERM.  Stopping.
Jan 15 06:25:36 2012 (12715) NewsRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:36 2012 (12715) NewsRunner qrunner exiting.
Jan 15 06:25:36 2012 (12718) RetryRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:36 2012 (12713) CommandRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:37 2012 (12718) RetryRunner qrunner caught SIGTERM.  Stopping.
Jan 15 06:25:38 2012 (12718) RetryRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:38 2012 (12713) CommandRunner qrunner caught SIGTERM. 
Stopping.
Jan 15 06:25:38 2012 (12713) CommandRunner qrunner caught SIGHUP. 
Reopening logs.
Jan 15 06:25:38 2012 (12718) RetryRunner qrunner exiting.
Jan 15 06:25:39 2012 (12713) CommandRunner qrunner exiting.
Jan 15 06:25:57 2012 (12711) ArchRunner qrunner exiting.

As far as I've seen in the correspondant logrotate definition, the 
signal is not directly sent to the process but the 
`/usr/lib/mailman/bin/mailmanctl -q reopen` command is executed.

That's the one that start, stop, reload, etc. the mailman Runners. When 
the reopen option is used, finally the os.kill(<mailman PID>, 
signal.SIGHUP) function is called - that cannot cause SIGTERM - if not 
an unexcpected exception is thrown, because in this case the "finally" 
block of the main loop cycle is called that broadcast this signal across 
the child processes.

After some years of mailman operation, this was the very first time when 
this bug appeared.

Do you have any idea how to avoid this in the future?

Thanks,
Ivan





More information about the Pkg-mailman-hackers mailing list