[Dovecot] Errors in Dovecot 1.0.5
Hello,
I am running Dovecot 1.0.5 and seem to have lots of errors in my Dovecot logs. The worst errors are things like:
Oct 30 16:11:42 delta2 dovecot: IMAP(x): Corrupted transaction log file /home/spamcop-net2/deputies/dovecot.index.log: end_offset (392) > current sync_offset (388) Oct 30 16:11:42 delta2 dovecot: IMAP(x): file mail-index-sync-update.c: line 841 (mail_index_sync_update_index): assertion failed: (view->hdr.messages_count == map->hdr.messages_count) Oct 30 16:11:42 delta2 dovecot: IMAP(x): Raw backtrace: imap [0x462a7e] -> imap [0x46234c] -> imap(mail_index_sync_update_index+0x7b2) [0x44a982] -> imap(mail_index_sync_commit+0xe7) [0x447f87] -> imap(maildir_sync_index_finish+0xd2) [0x420b32] -> imap [0x4225af] -> imap(maildir_storage_sync_init+0x63) [0x4227b3] -> imap(imap_sync_nonselected+0xf) [0x41be9f] -> imap(_cmd_select_full+0xc5) [0x413f95] -> imap(cmd_select+0xb) [0x41411b] -> imap [0x415a87] -> imap [0x415b2c] -> imap(_client_input+0x75) [0x415cd5] -> imap(io_loop_handler_run+0xee) [0x4684ce] -> imap(io_loop_run+0x2d) [0x46797d] -> imap(main+0x3e3) [0x41d7b3] -> /lib/libc.so.6(__libc_start_main+0xdb) [0x2aaaaace049b] -> imap [0x410cca]
When this happens, my users just get timeouts trying to do stuff.
I have my messages (maildirs) and indices all stored on NFS. For locking, I have mmap_disable = yes and lock_method = dotlock
Do you have any idea what is going on here? In general, I get tons of errors about corrupted transaction log files for all users. Is this normal?
Thanks Jeff
On Tue, Oct 30, 2007 at 04:23:36PM -0400, Jeff Tucker wrote:
Hello,
I am running Dovecot 1.0.5 and seem to have lots of errors in my Dovecot logs. The worst errors are things like:
Oct 30 16:11:42 delta2 dovecot: IMAP(x): Corrupted transaction log file /home/spamcop-net2/deputies/dovecot.index.log: end_offset (392) > current sync_offset (388) Oct 30 16:11:42 delta2 dovecot: IMAP(x): file mail-index-sync-update.c: line 841 (mail_index_sync_update_index): assertion failed: (view->hdr.messages_count == map->hdr.messages_count) Oct 30 16:11:42 delta2 dovecot: IMAP(x): Raw backtrace: imap [0x462a7e] -> imap [0x46234c] -> imap(mail_index_sync_update_index+0x7b2) [0x44a982] -> imap(mail_index_sync_commit+0xe7) [0x447f87] -> imap(maildir_sync_index_finish+0xd2) [0x420b32] -> imap [0x4225af] -> imap(maildir_storage_sync_init+0x63) [0x4227b3] -> imap(imap_sync_nonselected+0xf) [0x41be9f] -> imap(_cmd_select_full+0xc5) [0x413f95] -> imap(cmd_select+0xb) [0x41411b] -> imap [0x415a87] -> imap [0x415b2c] -> imap(_client_input+0x75) [0x415cd5] -> imap(io_loop_handler_run+0xee) [0x4684ce] -> imap(io_loop_run+0x2d) [0x46797d] -> imap(main+0x3e3) [0x41d7b3] -> /lib/libc.so.6(__libc_start_main+0xdb) [0x2aaaaace049b] -> imap [0x410cca]
When this happens, my users just get timeouts trying to do stuff.
I have my messages (maildirs) and indices all stored on NFS. For locking, I have mmap_disable = yes and lock_method = dotlock
Do you have any idea what is going on here? In general, I get tons of errors about corrupted transaction log files for all users. Is this normal?
Thanks Jeff
Do you have more than one server accessing the same indexes on NFS? Without turning off the NFS access cache on each server (slow) thats a bad idea in 1.0. To get around this, I use this:
mail_location = maildir:~/Maildir:CONTROL=%h/Maildir/dovecot/private/control:INDEX=/cache/dovecot/%u/private/indexes
Where CONTROL is shared on NFS but INDEX is on a local partition. If the user doesn't access mail very often and logs into random servers, they run the chance of having an empty cache, but thats better than corruption and this has been working solidly for me. I'll be testing out 1.1 soon which when setup properly should allow sharing INDEX on NFS safely, not to mention more self healing.
I would delete that users index files at the minimum.
Adam McDougall escribió:
On Tue, Oct 30, 2007 at 04:23:36PM -0400, Jeff Tucker wrote:
Hello,
I am running Dovecot 1.0.5 and seem to have lots of errors in my Dovecot logs. The worst errors are things like:
Oct 30 16:11:42 delta2 dovecot: IMAP(x): Corrupted transaction log file /home/spamcop-net2/deputies/dovecot.index.log: end_offset (392) > current sync_offset (388) Oct 30 16:11:42 delta2 dovecot: IMAP(x): file mail-index-sync-update.c: line 841 (mail_index_sync_update_index): assertion failed: (view->hdr.messages_count == map->hdr.messages_count) Oct 30 16:11:42 delta2 dovecot: IMAP(x): Raw backtrace: imap [0x462a7e] -> imap [0x46234c] -> imap(mail_index_sync_update_index+0x7b2) [0x44a982] -> imap(mail_index_sync_commit+0xe7) [0x447f87] -> imap(maildir_sync_index_finish+0xd2) [0x420b32] -> imap [0x4225af] -> imap(maildir_storage_sync_init+0x63) [0x4227b3] -> imap(imap_sync_nonselected+0xf) [0x41be9f] -> imap(_cmd_select_full+0xc5) [0x413f95] -> imap(cmd_select+0xb) [0x41411b] -> imap [0x415a87] -> imap [0x415b2c] -> imap(_client_input+0x75) [0x415cd5] -> imap(io_loop_handler_run+0xee) [0x4684ce] -> imap(io_loop_run+0x2d) [0x46797d] -> imap(main+0x3e3) [0x41d7b3] -> /lib/libc.so.6(__libc_start_main+0xdb) [0x2aaaaace049b] -> imap [0x410cca]
When this happens, my users just get timeouts trying to do stuff.
I have my messages (maildirs) and indices all stored on NFS. For locking, I have mmap_disable = yes and lock_method = dotlock
Do you have any idea what is going on here? In general, I get tons of errors about corrupted transaction log files for all users. Is this normal?
Thanks Jeff
Do you have more than one server accessing the same indexes on NFS? Without turning off the NFS access cache on each server (slow) thats a bad idea in 1.0. To get around this, I use this:
mail_location = maildir:~/Maildir:CONTROL=%h/Maildir/dovecot/private/control:INDEX=/cache/dovecot/%u/private/indexes
Where CONTROL is shared on NFS but INDEX is on a local partition. If the user doesn't access mail very often and logs into random servers, they run the chance of having an empty cache, but thats better than corruption and this has been working solidly for me. I'll be testing out 1.1 soon which when setup properly should allow sharing INDEX on NFS safely, not to mention more self healing.
I would delete that users index files at the minimum.
Hello, will that problem of sharing the indexes in 1.0.5 also happen under GFS?
Regards, David Bosque
Do you have more than one server accessing the same indexes on NFS? Without turning off the NFS access cache on each server (slow) thats a bad idea in 1.0. To get around this, I use this:
mail_location = maildir:~/Maildir:CONTROL=%h/Maildir/dovecot/private/control:INDEX=/cache/dovecot/%u/private/indexes
Where CONTROL is shared on NFS but INDEX is on a local partition. If the user doesn't access mail very often and logs into random servers, they run the chance of having an empty cache, but thats better than corruption and this has been working solidly for me. I'll be testing out 1.1 soon which when setup properly should allow sharing INDEX on NFS safely, not to mention more self healing.
I would delete that users index files at the minimum.
Thanks for the help. I am getting fewer errors in the log file now, after switching the indices over to local files, but they are still happening.
For example, this morning:
Nov 2 06:19:33 server2 dovecot: IMAP(x): Maildir /home/store4/x/.Garbage sync: UIDVALIDITY changed (1193995001 -> 1193996801) Nov 2 06:19:33 server2 dovecot: IMAP(x): Corrupted transaction log file /var/dovecot/x/.Garbage/dovecot.index.log.2: invalid indexid (1193995001 != 1193998773) Nov 2 06:19:33 server2 dovecot: IMAP(x): Corrupted index cache file /var/dovecot/x/.Garbage/dovecot.index.cache: indexid changed
Here is another from yesterday afternoon:
Nov 1 17:39:39 server2 dovecot: imap-login: Login: user=<x>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured Nov 1 17:39:39 server2 dovecot: IMAP(x): Transaction log file /var/dovecot/x/.sent-mail/dovecot.index.log: marked corrupted Nov 1 17:39:39 server2 dovecot: IMAP(x): Transaction log file /var/dovecot/x/.sent-mail/dovecot.index.log.2: marked corrupted Nov 1 17:39:39 server2 dovecot: IMAP(x): Maildir /home/store4/x/.sent-mail sync: UID < next_uid (3 < 69, file = 1193952487.P1105Q0M269080.server2:2,S) Nov 1 17:39:39 server2 dovecot: IMAP(x): Disconnected: Mailbox is in inconsistent state, please relogin.
All of this is with maildir stores accessed via NFS but indices are stored locally.
Is this normal? It seems like dovecot mostly continues and plays through it, but there are a lot of errors in the logs about corrupted files.
Thanks Jeff
On Fri, 2007-11-02 at 11:47 -0400, Jeff Tucker wrote:
Nov 2 06:19:33 server2 dovecot: IMAP(x): Maildir /home/store4/x/.Garbage sync: UIDVALIDITY changed (1193995001 -> 1193996801) .. All of this is with maildir stores accessed via NFS but indices are stored locally.
Is this normal? It seems like dovecot mostly continues and plays through it, but there are a lot of errors in the logs about corrupted files.
v1.0 doesn't flush NFS caches, which can cause this if multiple servers access the same maildir at about the same time. http://wiki.dovecot.org/NFS has some explanations of this. v1.1 has mail_nfs_storage=yes (and mail_nfs_index=yes) which make this possible. Anyway best would be if you could just redirect the user to the same NFS server always, even with v1.1 it should give better performance.
participants (4)
-
Adam McDougall
-
David Bosque
-
Jeff Tucker
-
Timo Sirainen