Upgrade/reconstruct failures [REPOST]

Ken Murchison ken at oceana.com
Tue Apr 6 15:31:22 EDT 2004


Rob Tanner wrote:

> Ken,
> 
> The imapd.log doesn't show anything at all, and I had already tried 
> strace'ing and saw nothing that gave me any clue.  One thing I did 
> notice was that using cyradm, I could not change the acl either on a 
> mailbox that reconstruct failed on.  I got an I/O error:
> 
> setaclmailbox: anyone: lrsip: System I/O error
> 
> That looks to me to be a complaint about mailboxes.db, but I can invoke 
> ctl_mboxlist -d any get a dump of the database without a problem.  So 
> while I see the problem extends beyond just the reconstruct, I am still 
> baffled.

When you change an ACL, both the entry in mailboxes.db and the 
cyrus.header file in the mailbox get changed.  I'm guessing that the 
error you see above is a result of failing to open/read/write 
cyrus.header (which might be confirmed by checking imapd.log).


> --On Thursday, April 01, 2004 02:29:21 PM -0500 Ken Murchison 
> <ken at oceana.com> wrote:
> 
>> Rob Tanner wrote:
>>
>>> Ken,
>>>
>>> Since I'm moving from ESYS to Cyrus, the index/cache files should be
>>> irrelevant as they use an entirely different naming convention and I
>>> fully expect to loose the flags in question.  But I tried your
>>> suggestion anyway without success.  And the problem is not consistent,
>>> only affecting maybe one third to one half of the mailbox folders.
>>>
>>> Also, I can create a new directory under a user and add an empty
>>> cyrus.header file, and reconstruct -fxr will find the emty file and add
>>> it and not declare it to have any invalid format.  I can empty out the
>>> directory claimed to have an invalid format and add an empty
>>> cyrus.header, and it still fails. Finally, at the unix level, and not
>>> with cyradm, I can rename the directory of a mailbox, say foo to foo2,
>>> create an empty foo so I don't get an I/O error, touch
>>> foo2/cyrus.header, run reconstruct -fx, and the box gets added to the
>>> mailboxes database without an error.  Just creating the empty
>>> cyrus.header file in the old mailbox doesn't fix the problem.
>>>
>>> I am convinced the problem is with the mailboxes database, but when I
>>> dump it to stdout, the entries for mailboxes that reconstruct okay and
>>> those that get an invalid format error look to be identical.
>>
>>
>> Actually every place that IMAP_MAILBOX_BADFORMAT is returned is in
>> mailbox.c, so I don't think it is a mailboxes database problem.
>>
>>>
>>> Is there any way to debug what construct is doing and why it's making
>>> the decision it's making without having to be an expert on the code?
>>
>>
>> Are you getting any useful info in imapd.log?  You could try strace'ing
>> reconstruct or running it through a debugger.
>>
>> -- 
>> Kenneth Murchison     Oceana Matrix Ltd.
>> Software Engineer     21 Princeton Place
>> 716-662-8973 x26      Orchard Park, NY 14127
>> --PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp
>>
> 
> 
> 
> 
> Rob Tanner
> Linfield College
> McMinnville, Oregon
> rtanner+cyrus at linfield.edu
> ---
> Home Page: http://asg.web.cmu.edu/cyrus
> Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
> 


-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp
---
Home Page: http://asg.web.cmu.edu/cyrus
Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list