Ken,

That was just a momentary oops. Now the same cyradm command generates the same error as reconstruct:

setaclmailbox: anyone: lrsip: Mailbox has an invalid format

And I still can't find any significant difference (other than the name) for a folder that reconstructs ok and one that doesn't. Could something have gone awry in the compile to mess up the db interface??

-- Rob

--On Tuesday, April 06, 2004 03:31:22 PM -0400 Ken Murchison <[EMAIL PROTECTED]> wrote:

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
<[EMAIL PROTECTED]> 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
[EMAIL PROTECTED]
---
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





Rob Tanner
Linfield College
McMinnville, Oregon
[EMAIL PROTECTED]
---
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

Reply via email to