[Dovecot] maildir_uidlist_create assertion failure
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size) dovecot: IMAP(example@example.com): Raw backtrace: imap [0x80cb740] -> imap [0x80cb64a] -> imap [0x8070e58] -> imap(maildir _uidlist_sync_deinit+0xe8) [0x8072d18] -> imap [0x806e9e2] -> imap(maildir_storage_sync_init+0x66) [0x806edf6] -> imap(imap_sync_init+0x4a) [0x80657da] -> ima p(cmd_sync+0x9d) [0x806590d] -> imap(cmd_store+0x33d) [0x805e1ed] -> imap(cmd_uid+0x57) [0x805e737] -> imap [0x805f009] -> imap [0x805f0ae] -> imap(client_inp ut+0x65) [0x805f6c5] -> imap(io_loop_handler_run+0x162) [0x80d3022] -> imap(io_loop_run+0x28) [0x80d2368] -> imap(main+0x4ab) [0x806723b] -> /lib/tls/i686/cmo v/libc.so.6(__libc_start_main+0xc8) [0xb7dfdea8] -> imap [0x8059551] dovecot: child 17997 (imap) killed with signal 6 dovecot: IMAP(example@example.com): rename(/home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist.tmp, /home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist) failed: No such file or directory dovecot: IMAP(example@example.com): unlink(/home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist.tmp) failed: No such file or directory dovecot: IMAP(example@example.com): rename(/home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist.tmp, /home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist) failed: No such file or directory dovecot: IMAP(example@example.com): unlink(/home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist.tmp) failed: No such file or directory
Followed sometime later by: dovecot: IMAP(example@example.com): Invalid data in file /home/vmail/domains/o/example.com/U/example/Maildir/dovecot-uidlist
Example of some corruption: ~/Maildir/dovecot-uidlist ... 7879 W193997 1195126451.4452.server023,S=191173:2,aopr :1195126451.4452.server023,S=191173:2,aopr ... 9628 W665454 1197354124.5254.server019,S=651976:2,pr <A0>% :1197354124.5254.server019,S=651976:2,pr
# dovecot -n # 1.1.beta11: /etc/dovecot/dovecot.conf base_dir: /var/run/dovecot/ protocols: imap imaps pop3 pop3s login_dir: /var/run/dovecot/login login_executable(default): /usr/lib/dovecot/imap-login login_executable(imap): /usr/lib/dovecot/imap-login login_executable(pop3): /usr/lib/dovecot/pop3-login verbose_proctitle: yes mail_uid: 89 mail_gid: 89 mail_location: maildir:~/Maildir mail_debug: yes mmap_disable: yes mail_nfs_storage: yes mail_nfs_index: yes mail_executable(default): /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap mail_executable(pop3): /usr/lib/dovecot/pop3 mail_plugins(default): fts fts_squat mail_plugins(imap): fts fts_squat mail_plugins(pop3): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap/ mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap/ mail_plugin_dir(pop3): /usr/lib/dovecot/modules/ imap_client_workarounds(default): delay-newmail imap_client_workarounds(imap): delay-newmail imap_client_workarounds(pop3): pop3_uidl_format(default): %08Xu%08Xv pop3_uidl_format(imap): %08Xu%08Xv pop3_uidl_format(pop3): %f pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh auth default: mechanisms: login plain cram-md5 digest-md5 username_format: %Lu verbose: yes debug: yes passdb: driver: sql args: /etc/dovecot/dovecot-sql.conf userdb: driver: sql args: /etc/dovecot/dovecot-sql.conf socket: type: listen client: path: /var/spool/postfix/private/auth user: postfix group: postfix master: path: /var/run/dovecot/auth-master user: vmail group: vmail plugin: quota: maildir quota_rule: *:storage=102400:messages=30000 fts: squat
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
What filesystem do you use?
On Dec 20, 2007 11:10 AM, Timo Sirainen <tss@iki.fi> wrote:
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
What filesystem do you use?
This is an NFS filesystem on an EMC Clariion CX700 backend. The local client OS is Linux 2.6.18-5-686 (from debian/etch).
On Thu, 2007-12-20 at 11:20 -0600, Andrew Garner wrote:
On Dec 20, 2007 11:10 AM, Timo Sirainen <tss@iki.fi> wrote:
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
What filesystem do you use?
This is an NFS filesystem on an EMC Clariion CX700 backend. The local client OS is Linux 2.6.18-5-686 (from debian/etch).
And there are multiple Dovecot servers? Did you set mail_nfs_storage=yes?
On Thu, 2007-12-20 at 19:28 +0200, Timo Sirainen wrote:
On Thu, 2007-12-20 at 11:20 -0600, Andrew Garner wrote:
On Dec 20, 2007 11:10 AM, Timo Sirainen <tss@iki.fi> wrote:
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
What filesystem do you use?
This is an NFS filesystem on an EMC Clariion CX700 backend. The local client OS is Linux 2.6.18-5-686 (from debian/etch).
And there are multiple Dovecot servers? Did you set mail_nfs_storage=yes?
Oh, you already said that. Also it shouldn't have made a difference there. I'm not really sure why it would break like that, but since you mention you're running 2.6.18 and http://wiki.dovecot.org/NFS says:
"Linux 2.6.18: Seems to have intermittent caching issues. The same .config with 2.6.20.1 has been tested and appears to work well."
Maybe the problem is with the kernel. I could of course change the assert to be a nicer error message, but that wouldn't really solve anything.
Dnia czwartek, 20 grudnia 2007, Timo Sirainen napisał:
On Thu, 2007-12-20 at 19:28 +0200, Timo Sirainen wrote:
On Thu, 2007-12-20 at 11:20 -0600, Andrew Garner wrote:
On Dec 20, 2007 11:10 AM, Timo Sirainen <tss@iki.fi> wrote:
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
What filesystem do you use?
This is an NFS filesystem on an EMC Clariion CX700 backend. The local client OS is Linux 2.6.18-5-686 (from debian/etch).
And there are multiple Dovecot servers? Did you set mail_nfs_storage=yes?
Oh, you already said that. Also it shouldn't have made a difference there. I'm not really sure why it would break like that, but since you mention you're running 2.6.18 and http://wiki.dovecot.org/NFS says:
"Linux 2.6.18: Seems to have intermittent caching issues. The same .config with 2.6.20.1 has been tested and appears to work well."
Maybe the problem is with the kernel. I could of course change the assert to be a nicer error message, but that wouldn't really solve anything.
I seem to have a similar assertion failure. The maildirs are held on reiserfs on external RAID. I have set the indexes on internal RAID yesterday, which seems to have triggered the problem. The assertion failure occurs under increased load - during loadtests.
dovecot: Dec 21 16:43:41 Error: IMAP(test0): file maildir-uidlist.c: line 143 (maildir_uidlist_lock_touch): assertion failed: (UIDLIST_IS_LOCKED(uidlist)) dovecot: Dec 21 16:43:41 Error: IMAP(test0): Raw backtrace: /usr/lib64/dovecot/imap [0x45fc4c] -> /usr/lib64/dovecot/imap [0x45f41c] -> /usr/lib64/dovecot/im ap [0x4224b9] -> /usr/lib64/dovecot/imap [0x42073e] -> /usr/lib64/dovecot/imap [0x420f5f] -> /usr/lib64/dovecot/imap [0x421d14] -> /usr/lib64/dovecot/imap(ma ildir_storage_sync_force+0x43) [0x421f33] -> /usr/lib64/dovecot/imap(maildir_storage_sync_init+0xc1) [0x4220c1] -> /usr/lib64/dovecot/imap(mailbox_sync_init+ 0x7) [0x452877] -> /usr/lib64/dovecot/imap(imap_sync_init+0x45) [0x41b705] -> /usr/lib64/dovecot/imap(cmd_sync+0x80) [0x41bbf0] -> /usr/lib64/dovecot/imap [0 x412580] -> /usr/lib64/dovecot/imap(cmd_fetch+0x128) [0x412708] -> /usr/lib64/dovecot/imap [0x415e42] -> /usr/lib64/dovecot/imap [0x415dd0] -> /usr/lib64/dov ecot/imap(_client_input+0x70) [0x415f20] -> /usr/lib64/dovecot/imap(io_loop_handler_run+0x10e) [0x46528e] -> /usr/lib64/dovecot/imap(io_loop_run+0x1c) [0x464 8fc] -> /usr/lib64/dovecot/imap(main+0x6b) [0x41d82b] -> /lib64/tls/libc.so.6 (__libc_start_main+0xd5) [0x2ae740dea815] -> /us dovecot: Dec 21 16:43:41 Error: IMAP(test0): r/lib64/dovecot/imap [0x410e6a] dovecot: Dec 21 16:43:41 Error: child 21744 (imap) killed with signal 6
# 1.0.9: /etc/dovecot/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot.log ssl_ca_file: /etc/certs/certum-chain.crt ssl_cert_file: /etc/certs/wild.dfqs.pl.crt ssl_key_file: /etc/certs/wild.dfqs.pl.key ssl_cipher_list: ALL:!LOW:!MEDIUM login_dir: /var/run/dovecot/login login_executable: /usr/lib64/dovecot/imap-login login_greeting: imap.dfqs.pl ready. login_process_per_connection: no login_processes_count: 5 login_max_processes_count: 32 max_mail_processes: 4096 verbose_proctitle: yes mail_location: maildir:~/mail:INDEX=/var/lib/dovecot/indexes/%n maildir_copy_with_hardlinks: yes maildir_copy_preserve_filename: yes mail_executable: /usr/local/lib64/dovecot-post-login.sh mail_plugins: imap_quota quota acl mail_plugin_dir: /usr/lib64/dovecot/plugins/imap mail_log_max_lines_per_sec: 0 imap_client_workarounds: outlook-idle tb-extra-mailbox-sep namespace: type: private separator: / inbox: yes namespace: type: public separator: / prefix: Public/ location: maildir:/var/vmail/Public:CONTROL=~/Public/control:INDEX=~/Public/index namespace: type: shared separator: / prefix: Shared/ location: maildir:/var/vmail/Shared:CONTROL=~/Shared/control:INDEX=~/Shared/index auth default: cache_size: 4096 cache_ttl: 600 verbose: yes worker_max_count: 512 passdb: driver: pam args: cache_key=%n dovecot userdb: driver: ldap args: /etc/dovecot/dovecot-ldap.conf socket: type: listen client: path: /var/run/dovecot/auth-client mode: 432 user: root group: vmail master: path: /var/run/dovecot/auth-master mode: 432 user: root group: vmail plugin: quota: maildir:storage=8388608 acl: vfile:
[root@harem ~]# uname -a Linux harem 2.6.21.5-0.1 #1 SMP Wed Jun 27 09:06:26 UTC 2007 x86_64 Intel(R)_Xeon(R)_CPU___________E5310__@_1.60GHz PLD Linux
On Fri, 2007-12-21 at 17:14 +0100, Mateusz Kijowski wrote:
"Linux 2.6.18: Seems to have intermittent caching issues. The same .config with 2.6.20.1 has been tested and appears to work well."
Maybe the problem is with the kernel. I could of course change the assert to be a nicer error message, but that wouldn't really solve anything.
I seem to have a similar assertion failure.
Well, not really. :)
dovecot: Dec 21 16:43:41 Error: IMAP(test0): file maildir-uidlist.c: line 143 (maildir_uidlist_lock_touch): assertion failed: (UIDLIST_IS_LOCKED(uidlist))
Thanks, fixed: http://hg.dovecot.org/dovecot-1.0/rev/500a21b449e9
and he's taking names and answering questions. The bugs run for cover.......
Timo Sirainen wrote:
On Thu, 2007-12-20 at 11:20 -0600, Andrew Garner wrote:
On Dec 20, 2007 11:10 AM, Timo Sirainen <tss@iki.fi> wrote:
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
What filesystem do you use?
This is an NFS filesystem on an EMC Clariion CX700 backend. The local client OS is Linux 2.6.18-5-686 (from debian/etch).
And there are multiple Dovecot servers? Did you set mail_nfs_storage=yes?
--
Stewart Dean, Unix System Admin, Henderson Computer Resources
Center of Bard College, Annandale-on-Hudson, New York 12504
sdean@bard.edu voice: 845-758-7475, fax: 845-758-7035
Stewart Dean, on 12/20/2007 12:33 PM, said the following:
and he's taking names and answering questions. The bugs run for cover.......
LOL! I was just thinking something similar... like...
"Heeeeeee's, baaaaa-aaaaaaaack!"
--
Best regards,
Charles
On Mon, 2007-12-17 at 12:52 -0600, Andrew Garner wrote:
I've been getting the following error fairly often, which tends to result in a corrupted dovecot-uidlist.
dovecot: IMAP(example@example.com): file maildir-uidlist.c: line 1009 (maildir_uidlist_recreate): assertion failed: (file_size == (uoff_t)st.st_size)
I finally figured this out after adding a few checks in there: http://hg.dovecot.org/dovecot/rev/7424de4bac23
participants (5)
-
Andrew Garner
-
Charles Marcus
-
Mateusz Kijowski
-
Stewart Dean
-
Timo Sirainen