[Dovecot] Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1)
Hello, we are using dovecot v1.2.10 on debian stable (lenny) systems with mailboxes on NFS, and we are facing this quite ugly crash:
2010-04-27 10:59:06 IMAP(<mailbox>): Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1) 2010-04-27 10:59:06 dovecot: Error: child 2429 (imap) killed with signal 6 (core dumps disabled) 2010-04-27 10:59:06 IMAP(<mailbox>): Error: Raw backtrace: imap [0x80f2ea1] -> imap [0x80f2f22] -> imap [0x80f2879] -> imap [0x80df6ad] -> imap(mail_index_sync_ext_intro+0x25b) [0x80e043b] -> imap(mail_index_sync_record+0x164) [0x80ce8e4] -> imap(mail_index_sync_map+0x2c3) [0x80cf6d3] -> imap(mail_index_map+0x465) [0x80c47f5] -> imap [0x80c1053] -> imap(mail_index_open+0x24f) [0x80c150f] -> imap(index_storage_mailbox_open+0x72) [0x80acbb2] -> imap(index_storage_mailbox_init+0x132) [0x80acf72] -> imap [0x80847f8] -> imap [0x8084a9d] -> imap(mailbox_open+0x69) [0x80b71b9] -> imap(cmd_select_full+0x1dd) [0x806503d] -> imap(cmd_select+0x19) [0x8065999] -> imap [0x8067c7c] -> imap [0x8067d19] -> imap(client_handle_input+0x2d) [0x8067e8d] -> imap(client_input+0x5f) [0x80687ef] -> imap(io_loop_handler_run+0xe0) [0x80fbc50] -> imap(io_loop_run+0x20) [0x80fb0c0] -> imap(main+0x5ea) [0x80712fa] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7dbf455] -> imap [0x8060361]
the only solution we have found is to delete the dovecot.index* files, and let dovecot regenerate them at the next access.
could you please give it a look?
Thanks in advance, Sandro
On Tue, Apr 27, 2010 at 11:36:41AM +0200, Sandro Tosi wrote:
Hello, we are using dovecot v1.2.10 on debian stable (lenny) systems with
This is not directly a solution for your problem, but debian stabel does not include dovecot 1.2 only 1.0. You got this doveot version from backports where 1.2.11 is current.
So it might be worth a shot to upgrade your dovecot to 1.2.11 and have a look if it still fails.
Dennis
Dennis Guhl put forth on 4/28/2010 1:59 AM:
Yes, definitely go up to 1.2.11 if you're using mbox storage format. There are some serious mbox fixes in 1.2.11. Also take note of this in the Debian provided dovecot.conf regarding nfs locking:
mbox-specific settings
Which locking methods to use for locking mbox. There are four available:
dotlock: Create <mailbox>.lock file. This is the oldest and most NFS-safe
solution. If you want to use /var/mail/ like directory, the users
will need write access to that directory.
dotlock_try: Same as dotlock, but if it fails because of permissions or
because there isn't enough disk space, just skip it.
fcntl : Use this if possible. Works with NFS too if lockd is used.
flock : May not exist in all systems. Doesn't work with NFS.
lockf : May not exist in all systems. Doesn't work with NFS.
You can use multiple locking methods; if you do the order they're declared
in is important to avoid deadlocks if other MTAs/MUAs are using multiple
locking methods as well. Some operating systems don't allow using some of
them simultaneously.
The Debian value for mbox_write_locks differs from upstream Dovecot. It is
changed to be compliant with Debian Policy (section 11.6) for NFS safety.
Dovecot: mbox_write_locks = dotlock fcntl
Debian: mbox_write_locks = fcntl dotlock
-- Stan
Hi Stan, thanks for your email.
We are using Maildir format on NFS, not mbox (and we followed the guidelines for tuning Maildir on NFS as reported in dovecot wiki, but thanks for mention them ;) ).
Regards, Sandro
From: dovecot-bounces+sandro.tosi=register.it@dovecot.org [dovecot-bounces+sandro.tosi=register.it@dovecot.org] On Behalf Of Stan Hoeppner [stan@hardwarefreak.com] Sent: Wednesday, April 28, 2010 9:16 AM To: dovecot@dovecot.org Subject: Re: [Dovecot] Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1)
Dennis Guhl put forth on 4/28/2010 1:59 AM:
Yes, definitely go up to 1.2.11 if you're using mbox storage format. There are some serious mbox fixes in 1.2.11. Also take note of this in the Debian provided dovecot.conf regarding nfs locking:
mbox-specific settings
Which locking methods to use for locking mbox. There are four available:
dotlock: Create <mailbox>.lock file. This is the oldest and most NFS-safe
solution. If you want to use /var/mail/ like directory, the users
will need write access to that directory.
dotlock_try: Same as dotlock, but if it fails because of permissions or
because there isn't enough disk space, just skip it.
fcntl : Use this if possible. Works with NFS too if lockd is used.
flock : May not exist in all systems. Doesn't work with NFS.
lockf : May not exist in all systems. Doesn't work with NFS.
You can use multiple locking methods; if you do the order they're declared
in is important to avoid deadlocks if other MTAs/MUAs are using multiple
locking methods as well. Some operating systems don't allow using some of
them simultaneously.
The Debian value for mbox_write_locks differs from upstream Dovecot. It is
changed to be compliant with Debian Policy (section 11.6) for NFS safety.
Dovecot: mbox_write_locks = dotlock fcntl
Debian: mbox_write_locks = fcntl dotlock
-- Stan
Hello Dennis, thanks for the reply
On 04/28/2010 08:59 AM, Dennis Guhl wrote:
I've upgraded to 1.2.11 but the problem is still there: here is a fresh crash
2010-04-28 13:22:17 POP3(<address>): Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1) 2010-04-28 13:22:17 POP3(<address>): Error: Raw backtrace: pop3 [0x80e3101] -> pop3 [0x80e3182] -> pop3 [0x80e2ad9] -> pop3 [0x80d048d] -> pop3(mail_index_sync_ext_intro+0x25b) [0x80d121b] -> pop3(mail_index_sync_record+0x164) [0x80bf6c4] -> pop3(mail_index_sync_map+0x2c3) [0x80c04b3] -> pop3(mail_index_map+0x465) [0x80b55d5] -> pop3 [0x80b1e33] -> pop3(mail_index_open+0x24f) [0x80b22ef] -> pop3(index_storage_mailbox_open+0x72) [0x809db72] -> pop3(index_storage_mailbox_init+0x132) [0x809df32] -> pop3 [0x8075738] -> pop3 [0x80759dd] -> pop3(mailbox_open+0x69) [0x80a7f99] -> pop3(client_create+0x16f) [0x805fb5f] -> pop3(main+0x456) [0x8061d26] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7dba455] -> pop3 [0x805f161] 2010-04-28 13:22:17 dovecot: Error: child 30295 (pop3) killed with signal 6 (core dumps disabled)
Hi Dennis, thanks for the reply
I've upgraded to 1.2.11 but the problem is still there: here is a fresh crash
2010-04-28 13:22:17 POP3(<address>): Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1) 2010-04-28 13:22:17 POP3(<address>): Error: Raw backtrace: pop3 [0x80e3101] -> pop3 [0x80e3182] -> pop3 [0x80e2ad9] -> pop3 [0x80d048d] -> pop3(mail_index_sync_ext_intro+0x25b) [0x80d121b] -> pop3(mail_index_sync_record+0x164) [0x80bf6c4] -> pop3(mail_index_sync_map+0x2c3) [0x80c04b3] -> pop3(mail_index_map+0x465) [0x80b55d5] -> pop3 [0x80b1e33] -> pop3(mail_index_open+0x24f) [0x80b22ef] -> pop3(index_storage_mailbox_open+0x72) [0x809db72] -> pop3(index_storage_mailbox_init+0x132) [0x809df32] -> pop3 [0x8075738] -> pop3 [0x80759dd] -> pop3(mailbox_open+0x69) [0x80a7f99] -> pop3(client_create+0x16f) [0x805fb5f] -> pop3(main+0x456) [0x8061d26] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7dba455] -> pop3 [0x805f161] 2010-04-28 13:22:17 dovecot: Error: child 30295 (pop3) killed with signal 6 (core dumps disabled)
Regards, Sandro
From: dovecot-bounces+sandro.tosi=register.it@dovecot.org [dovecot-bounces+sandro.tosi=register.it@dovecot.org] On Behalf Of Dennis Guhl [dg@dguhl.org] Sent: Wednesday, April 28, 2010 8:59 AM To: dovecot@dovecot.org Subject: Re: [Dovecot] Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1)
On Tue, Apr 27, 2010 at 11:36:41AM +0200, Sandro Tosi wrote:
Hello, we are using dovecot v1.2.10 on debian stable (lenny) systems with
This is not directly a solution for your problem, but debian stabel does not include dovecot 1.2 only 1.0. You got this doveot version from backports where 1.2.11 is current.
So it might be worth a shot to upgrade your dovecot to 1.2.11 and have a look if it still fails.
Dennis
Sure, here they are. Thanks for your interest :)
Sandro
From: Timo Sirainen [tss@iki.fi] Sent: Thursday, April 29, 2010 7:33 PM To: Sandro Tosi Cc: Dovecot Mailing List Subject: Re: [Dovecot] Panic: file mail-index-sync-ext.c: line 212 (sync_ext_reorder): assertion failed: (offset < (uint16_t)-1)
On Thu, 2010-04-29 at 16:27 +0200, Sandro Tosi wrote:
Interesting. When this happens again, could you send the user's dovecot.index and dovecot.index.log files to me? They don't contain anything sensitive about mails (only flags).
The .log file doesn't seem to contain anything special and I couldn't reproduce the crash with it. So the quickest way to get this fixed would be if you could:
Compile Dovecot's lib-index/ without optimizations (easiest is to remove -O2 from lib-index/Makefile, make clean, make, make install)
ulimit -c unlimited before starting Dovecot (and possibly do other things) to get it to dump core
When it crashes, sent me the output of:
gdb .../dovecot/pop3 ~/core bt full fr 6 (possibly some other number, so that commands below won't fail) p offset p i p *sorted[0] p *sorted[1] p *sorted[2]
On Mon, 2010-05-24 at 09:24 +0200, Sandro Tosi wrote:
participants (4)
-
Dennis Guhl
-
Sandro Tosi
-
Stan Hoeppner
-
Timo Sirainen