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