Re: frontend mupdate deadlock

Дилян Палаузов <[email protected]> Fri, 10 Apr 2026 15:58:02 +0300
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Hello,

> Since we migrated from 2.5 to 3.8 my frontends start piling up processes from time to time.
> Maybe the cause is something I changed in our setup for 3.8. The options are
> *) improved_mboxlist_sort: 1

In Cyrus IMAP 3.6 and later versions the imapd.conf option improved_mboxlist_sort does nothing.

This is stated correctly at https://www.cyrusimap.org/dev/download/release-notes/3.6/x/3.6.0.html .  This is not articulated at https://www.cyrusimap.org/3.6/imap/download/release-notes/3.6/x/3.6.0.html .

All that said, this particular option is not the cause here.

Greetings // Дилян

-----Original Message-----
From: Wolfgang Breyha via Info <[email protected]>
Reply-To: Info <[email protected]>
To: [email protected]
Subject: frontend mupdate deadlock
Date: 10/04/26 14:43:55

Hi!

Since we migrated from 2.5 to 3.8 last year my frontends start piling up
primarily imap (and other?) processes from time to time (one frontend every
1-2 month) in high activity periods.

So it took a while to get some clue what's causing it. Yesterday I
recognized that many of the imap processes show "<uid> Status" as procinfo
(since I have a SETPROCTITLE build) instead of "<uid> Idle" what was the
first kind of "pattern" I detected.

After some digging through the logs and the source I came to the conclusion
that the affected frontends mupdate process seems to deadlock. It got some
fresh updates from the master in that time and then suddenly it stopped
processing them (compared to the other two frontends) and also stops
responding on the UNIX socket.

But mupdate did not crash so far and is visible in the process list with
state "Sl".

It seems that the UNIX socket is still open and the imapd processes which
call kick_mupdate() block waiting for answers from mupdate. At this point
it is a matter of time until the machines start swapping and thrashing.

The logs show nothing unusual until I stop the service.

When stopped I see a lot of imapds logging
kick_mupdate: can't connect to target: Interrupted system call

I was not able to pin the true cause of the deadlock yet. Since this never
happened with 2.5 and the code didn't change much maybe the cause is
something I changed in our setup for 3.8. The options are
*) twoskip instead of skiplist for mailboxes.db
*) improved_mboxlist_sort: 1
*) reverseacls: 1
*) prometheus_enabled: 1

Maybe somebody else with murder environment sees this as well and can help
tracking this down.

Greetings, Wolfgang

------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/Tcbcaf0fdcb0bc67b-Mdef360cb8b55363e5303b041
Delivery options: https://cyrus.topicbox.com/groups/info/subscription