Subject: bug#8959: 24.0.50; [nnimap/Gnus] Dovecot panics trying to close mailboxes

From: Lars Magne Ingebrigtsen <[email-masked]>
Date: Thu, 30 Jun 2011 00:55:47 +0200

Luca Capello <[email-masked]> writes:

> At least from 20110226 (emacs-snapshot_1:20110210-1 according to my
> dpkg.log) sometime while checking for new emails Gnus hangs on the
> message "nnimap read $KILOBYTES".  The remote Dovecot log shows the
> following:
> =====
> Jun 29 21:10:08 mantissa dovecot: imap-login: Login: user=<luca.capello>, \
>  method=PLAIN, rip=[REMOVED], lip=[REMOVED, TLS
> Jun 29 21:10:10 mantissa dovecot: IMAP(luca.capello): Panic: Trying to close mailbox \
>  lists.Debian.pkg.CL-Debian with open transactions
> Jun 29 21:10:10 mantissa dovecot: IMAP(luca.capello): Raw backtrace: \
>  imap() [0x4a518a] -> imap() [0x4a51f3] -> imap() [0x4a48f6] -> \

[...]

> 21:28:36 2443 EXAMINE "lists.Debian.NewMaint" (QRESYNC (1277923816 1)).
> 21:28:36 2444 EXAMINE "lists.Debian.devel.general.2005" (QRESYNC (1277904533 1)).
> 21:28:36 2445 EXAMINE "lists.Debian.DebConf.Italian" (QRESYNC (1277903571 1)).
> 21:28:36 2446 EXAMINE "lists.Debian.pkg.CL-Debian" (QRESYNC (1277887546 1)).
> 21:28:36 2447 EXAMINE "lists.Debian.Hurd" (QRESYNC (1277899901 1)).
> 21:28:36 2448 EXAMINE "lists.DHCP-client" (QRESYNC (1277856131 1)).
> 21:28:36 2449 EXAMINE "lists.Linux.BlueZ-devel" (QRESYNC (1277835700 1)).

[...]

> * OK [UIDVALIDITY 1285242750] UIDs valid.
> * OK [UIDNEXT 9] Predicted next UID.
> * OK [HIGHESTMODSEQ 1] Highest.
> 1831 OK [READ-ONLY] Select completed..
> * OK [CLOSED] Previous mail*** Fatal error: A TLS packet with unexpected length was received.
> *** Server has terminated the connection abnormally.
>
> Process *nnimap* exited abnormally with code 1
> =====
>
> ===== [buffer: `*nnimap home.pca.it nil  *nntpd**<4>']
> * ENABLED QRESYNC.
> 2539 OK Enabled..
>
> Process *nnimap* killed
> =====

There seems to be two problems here.

1) Your dovecot is apparently segfaulting because of something Gnus is
doing.  Does it stop doing that if you `M-g' the
"lists.Debian.pkg.CL-Debian" group?  I have a suspicion that dovecot's
QRESYNC support is fragile, but I'm not sure what nnimap can do about
that except blacklist Dovecot from using QRESYNC.  Which kinda sucks.

2) When dovecot shut down the connection, nnimap seemed to open up a new
connection buffer, and starts waiting for the response to the previous
command there.  That's obviously an nnimap bug, and I'll see whether I
can chase that one down, but it's kinda difficult to reproduce...
hm...  perhaps if I use an external TLS connection, I can kill the
external program while it's working.  

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/