On Wed, 2009-05-06 at 11:06 +0200, Matthijs Kooijman wrote:
virtual /home/matthijs/Mail/virtual/INBOX: Broken mailbox list .. I've just tried removing the index files, which seems to fix the error message. The index file gets recreated and my debug statements show proper output. Another solution is adding an extra file to the folder list, in which case the index will get fixed as well.
Perhaps it would be good to recreate the index file when this error is found, instead of complaining?
That's what it should have done. I just tested and it did successfully update the index file without complaining about anything again. Anyway I added some more checks to the code now.
Also, from the code (virtual_sync_ext_header_read in src/virtual/virtual-sync.c) it seems that the last mailbox should be skipped because of this error, but the mailbox works fine. I'm probably not looking closely enough :-)
It then handles it the same way as newly seen mailboxes. Gives a new mailbox ID and syncs it from the beginning.
I haven't been able to reliably break the index file with some quick testing (reconnecting, restarting and modifying the mailbox list), but I did manage to break it once (by removing a mailbox from halfway the list, and then adding it again). I couldn't reproduce that, though, since removing a mailbox doesn't always seem to recreate the index for some reason...
I tried stress testing by having it open "*" mailboxes and then randomly creating and deleting them. Didn't seem to cause broken virtual index file.