Graceful restart also for imapd.conf

Olivier ROLAND cyrus-dev at edla.org
Mon Aug 8 05:39:41 EDT 2011


Hi there,

Since version 2.0.9 Cyrus master can re-read /etc/cyrus.conf on SIGHUP.

The man say :
       Master rereads its configuration file when it receives a hangup signal,
       SIGHUP.  Services and events may be added, deleted or modified when the
       configuration file is reread.  Any active  services  removed  from  the
       configuration file will be allowed to run until completion.

Looking at the code I wonder why we don't do the same to re-reread
/etc/imapd.conf.
Actually, master only send a SIGHUP to children when the service have
been removed.
My guess is that  we could send a SIGHUP to all services. That way we
don't have to wait for all preforked processes to finish before taking
into account the new imapd.conf
I have made some test and till now all seem working well.

The only tricky thing I see is that we don't want to SIGHUP children
in the SERVICE_STATE_DEAD state but the actual code already take care
of that.

So is there any problem that justify to limit the SIGHUP propagation
to children for removed service only ?
Or could we go a bit further (with very few modification to the code)
and allow graceful restart when we modify /etc/imapd.conf.

Olivier ROLAND
AtoS


More information about the Cyrus-devel mailing list