On Thu, 2009-12-24 at 11:39 -0500, David Halik wrote: > Dec 24 10:43:07 gehenna11 dovecot: IMAP(user): > /rci/nqu/rci/u1/user/dovecot/.INBOX/dovecot-uidlist: Duplicate file > entry at line 4: > 1231949492.M325236P5922V03E80009I01B6DCA5_0.gehenna9.rutgers.edu,S=4398:2,S > (uid 514 -> 721) > Dec 24 10:43:08 gehenna11 dovecot: IMAP(user): Maildir > /rci/u1/user/Maildir: Expunged message reappeared, giving a new UID (old > uid=516, > file=1231952516.M164875P24494V03E80009I01B6DCAC_0.gehenna9.rutgers.edu,S=4355:2,S) > Dec 24 10:44:38 gehenna11 dovecot: IMAP(user): > /rci/nqu/rci/u1/user/dovecot/.INBOX/dovecot-uidlist: Duplicate file > entry at line 6: > 1233524267.M97899P9543V04240006I01B6E908_0.gehenna5.rutgers.edu,S=3039:2,S > (uid 517 -> 723)
Wonder if there's a corresponding "Expunged message reappeared, giving a new UID (old uid=x)" having "Dupliate file entry .. (uid x -> " for each log line? Meaning that the duplicate file entries are caused by those reappearing messages? (And the reappearing messages are probably caused by dentry caching issues.) > Dec 24 10:44:38 gehenna11 dovecot: IMAP(user): Panic: file > maildir-uidlist.c: line 405 (maildir_uidlist_records_array_delete): > assertion failed: (pos != NULL) I couldn't previously really figure out how this could happen, even when manually causing the "expunged message reappeared" error. Could you do in gdb something like: fr 6 (or whatever frame gives usable results) p *rec p count p *recs[0] p *recs[1] p *recs[..up until count-1] If count is large, the main things I want to know are: 1) Is the array sorted (recs[n]->uid < recs[n+1]->uid always)? 2) is rec->uid anywhere in the recs array? If it complains about values being optimized away, recompile without -O2. I usually do that by just removing it from src/lib-storage/index/maildir/Makefile and touch dovecot-uidlist.c and make + make install.
signature.asc
Description: This is a digitally signed message part