Possible issues in master.c (centry_add hiding entries, snmp_timeout applied when it shouldn't)
Jens Erat
jens.erat at uni-konstanz.de
Mon Apr 11 03:55:04 EDT 2016
Hi all,
the only feedback was for the snmp_timeout (probably should have better
sent out two mails). Did you look into the ctable_add issue?
> ## centry_add hides older entries
>
> This seems like a minor issue as it might result in broken state in rare
> cases, which repairs itself after "hiding" process is terminated again
> (which might take days or even weeks, though).
>
> `centry_add` does simply add a new entry to the ctable, but does not
> verify whether it already exists:
>
> /* add a centry to the global table of all
> * centries, using the given pid as the key */
> static void centry_add(struct centry *c, pid_t p)
> {
> c->pid = p;
> c->next = ctable[p % child_table_size];
> ctable[p % child_table_size] = c;
> }
>
> While debugging, we added a `centry_find` call before adding and indeed
> observed sporadic events when entries have been added, but not cleaned
> up yet. Mostly they occurred when Cyrus was stuck because of the
> `select` interrupting the master loop, but very rarely this also
> happened during normal operation. I must admit we had a situation with
> heavily increased probability for for such issues:
>
> - Solaris limited to 30k PIDs by default, while we're running 10-12k
> processes during normal operation
> - `-T 60` joined with a high prefork resulted in imapd processes
> terminated frequently
> - Single active, rather large machine serving a large number of users,
> lots of them using a webmail system with very short IMAP sessions
> - Because of the `select` bug, we often didn't have the child janitor
> cleaning up the ctable for seconds and minutes
>
> Generally, this might happen on every setup when having bad luck.
>
> To fix this issue and completely prevent such hiding of older processes,
> I'd propose to run `centry_find` before adding a new entry, and run the
> child janitor if needed.
Regards,
Jens
--
Jens Erat
Universität Konstanz
Kommunikations-, Infomations-, Medienzentrum (KIM)
Abteilung Basisdienste
D-78457 Konstanz
Mail: jens.erat at uni-konstanz.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4913 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20160411/cfac70b3/attachment-0001.p7s>
More information about the Cyrus-devel
mailing list