On Mon, 2012-07-09 at 10:45 +0200, Angel L. Mateo wrote:
We still have problems with our updated dovecot servers... The problem now is that we are having errors like:
Jul 9 10:22:02 myotis31 dovecot: lmtp(15431, <user>): Error: Timeout (180s) while waiting for lock for transaction log file /var/indexes/<user>/.INBOX/dovecot.index.log .. maildir are in a nfs storage, but indexes are in local disk. I don't know if the problem could be related with a some "specific" messages or something specific to the user, because we are having this problem only with a few users and the problem repeatedly happens when our mta tries to deliver the queued message.
If you can somewhat easily reproduce this for specific users, maybe you could strace -tt the lmtp process doing the delivery to see what is happening? Also, if the .log file is really locked for longer than 180secs, you should see a warning: Transaction log file %s was locked for %u seconds You could maybe also decrease the threshold for that warning: diff -r 56ef4e70b1a9 src/lib-index/mail-transaction-log-file.c --- a/src/lib-index/mail-transaction-log-file.c Tue Jul 17 15:44:36 2012 +0300 +++ b/src/lib-index/mail-transaction-log-file.c Tue Jul 17 16:09:28 2012 +0300 @@ -386,7 +386,7 @@ return; lock_time = time(NULL) - file->lock_created; - if (lock_time >= MAIL_TRANSCATION_LOG_LOCK_TIMEOUT) { + if (lock_time >= 30) { i_warning("Transaction log file %s was locked for %u seconds", file->filepath, lock_time); }