Disabling the reuse timeout (-T 0) results in crashes

ellie timoney ellie at fastmail.com
Sun Feb 21 19:49:21 EST 2016


Hi again,

This is now fixed in the master, cyrus-imapd-2.5 and cyrus-imapd-2.4
branches on git and will be included in future releases from these
branches.

Cheers,

ellie

On Fri, Feb 19, 2016, at 11:08 AM, ellie timoney via Cyrus-devel wrote:
> Hi Jens,
> 
> Thanks for the patch.  This has also been reported as T227 by Ian
> Batten: https://git.cyrus.foundation/T227
> 
> I'll get this fixed in git soon.
> 
> ellie
> 
> On Thu, Feb 18, 2016, at 11:13 PM, Jens Erat via Cyrus-devel wrote:
> > Dear Cyrus developers,
> > 
> > `man imapd` explains `-T 0` should disable the reuse timeout:
> > 
> > > −T timeout
> > > 
> > > The number of seconds that the process will wait for a new connection before shutting down. Note that a value of 0 (zero) will disable the timeout. The default is 60.
> > 
> > But doing so results in crashes immediately after the first connection
> > with an arithmetic exception. Digging deeper, the issue is rather
> > obvious:
> > 
> >     reuse_timeout = reuse_timeout + (rand() % reuse_timeout);
> > 
> > This should not be executed for `reuse_timeout == 0`. I attached a small
> > patch resolving the issue. `reuse_timeout = 0` results in disabled
> > alarms, probably this border case was overlooked when the random timeout
> > skew was added.
> > 
> > The patch is developed against Cyrus IMAP 2.5.7.
> > 
> > Regards from Lake Constance, Germany,
> > Jens Erat
> > 
> > -- 
> > Jens Erat
> > Universität Konstanz
> > Kommunikations-, Infomations-, Medienzentrum (KIM)
> > Abteilung Basisdienste
> > D-78457 Konstanz
> > Mail: jens.erat at uni-konstanz.de
> > Email had 2 attachments:
> > + cyrus-imapd-2.5.7-master-timeout.patch
> >   1k (text/x-patch)
> > + signature.asc
> >   1k (application/pgp-signature)


More information about the Cyrus-devel mailing list