Reconstruct behaviour on IO error

Bron Gondwana brong at fastmail.fm
Mon Oct 4 15:07:53 EDT 2010


Hmm... so trying to debug Chris Pepper's problems over on info-cyrus I
tried reconstruting a folder with some unreadable messages (due to
permission problems).

Here's what my 2.3.16-based fmold reconstruct did:

reconstruct: fopen() failed for '/tmp/foo-master/data/user/somebody/158.' [error=13] -- skipping.
reconstruct: fopen() failed for '/tmp/foo-master/data/user/somebody/159.' [error=13] -- skipping.
reconstruct: fopen() failed for '/tmp/foo-master/data/user/somebody/162.' [error=13] -- skipping.
reconstruct: fopen() failed for '/tmp/foo-master/data/user/somebody/163.' [error=13] -- skipping.

And here's what my new -future based reconstruct did:

user.somebody: System I/O error Permission denied

Now I think that error should at least include the file name - but what's
the list's opinion on this?  Keep going and remove entires for messages with
IO errors reading their file, or bail and make the administrator fix the
underlying permissions first?  I can see arguments for both - though remember
that once you've removed the index record you can never go back under
strict UID existence semantics, so if the admin fixes the files later then
reconstruct will actually give them new UIDs.

Opinions?

Bron.


More information about the Cyrus-devel mailing list