'invalid magic header: /var/imap/mailboxes.db' Error
Simon Matter
simon.matter at ch.sauter-bc.com
Mon Oct 18 02:32:08 EDT 2004
> Hi all. I'm a cyrus newbie/novice. I rebooted my mailserver this morning,
> and
> now cyrus is dead. This is my mailserver at home so it is not critical,
> but
> my personal mail is kaput until I get this fixed.
>
> After the system rebooted the disk started spinning like mad ... which
> turned
> out to be syslog dumping tons of log messages from cyrus. The following
> lines
> are repeated hundreds and hundreds of times:
>
> Oct 17 13:28:45 o-ren master[12647]: about to exec /usr/lib/cyrus/imapd
> Oct 17 13:28:45 o-ren imap[12647]: executed
> Oct 17 13:28:45 o-ren imap[12647]: skiplist: invalid magic
> header: /var/imap/mailboxes.db
Your cyrus thinks your mailbox is in skiplist format.
> Oct 17 13:28:45 o-ren imap[12647]: DBERROR: opening
> /var/imap/mailboxes.db:
> cyrusdb error
> Oct 17 13:28:45 o-ren imap[12647]: Fatal error: can't read mailboxes file
> Oct 17 13:28:45 o-ren master[10840]: process 12647 exited, status 75
> Oct 17 13:28:45 o-ren master[10840]: service imap pid 12647 in READY
> state:
> terminated abnormally
>
> I found a note here:
>
> http://asg.web.cmu.edu/archive/message.php?mailbox=archive.info-cyrus&msg=28119
>
> with a fix, but that fix is not working for me. I ran conv.sh which gave
> me
> the following file:
>
> cyrus at o-ren tmp $ cat /tmp/mailboxes.txt
> user.a default a lrswipcda cyrus lrswipcda
> user.b default b lrswipcda cyrus lrswipcda
> user.c default c lrswipcda cyrus lrswipcda
> user.c.user default c lrswipcda cyrus lrswipcda
> user.c.user.carmen default c lrswipcda cyrus lrswipcda
> user.c.user.carmen.Sent default c lrswipcda cyrus lrswipcda
> user.c.user.carmen.Drafts default c lrswipcda cyrus
> lrswipcda
> user.c.user.carmen.Trash default c lrswipcda cyrus
> lrswipcda
> user.d default d lrswipcda cyrus lrswipcda
> user.e default e lrswipcda cyrus lrswipcda
> user.f default f lrswipcda cyrus lrswipcda
> user.g default g lrswipcda cyrus lrswipcda
> user.h default h lrswipcda cyrus lrswipcda
> user.i default i lrswipcda cyrus lrswipcda
> user.j default j lrswipcda cyrus lrswipcda
> user.j.user default j lrswipcda cyrus lrswipcda
> user.j.user.jamie default j lrswipcda cyrus lrswipcda
> user.j.user.jamie.Sent default j lrswipcda cyrus lrswipcda
> user.j.user.jamie.Drafts default j lrswipcda cyrus
> lrswipcda
> user.j.user.jamie.Trash default j lrswipcda cyrus lrswipcda
> user.k default k lrswipcda cyrus lrswipcda
> user.l default l lrswipcda cyrus lrswipcda
> user.m default m lrswipcda cyrus lrswipcda
> user.m.user default m lrswipcda cyrus lrswipcda
> user.m.user.mark default m lrswipcda cyrus lrswipcda
> user.m.user.mark.Sent default m lrswipcda cyrus lrswipcda
> user.m.user.mark.Spam default m lrswipcda cyrus lrswipcda
> user.m.user.mark.Drafts default m lrswipcda cyrus lrswipcda
> user.m.user.mark.Trash default m lrswipcda cyrus lrswipcda
> user.m.user.mark.Postmaster default m lrswipcda cyrus
> lrswipcda
> user.n default n lrswipcda cyrus lrswipcda
> user.o default o lrswipcda cyrus lrswipcda
> user.p default p lrswipcda cyrus lrswipcda
> user.q default q lrswipcda cyrus lrswipcda
> user.r default r lrswipcda cyrus lrswipcda
> user.s default s lrswipcda cyrus lrswipcda
> user.s.user default s lrswipcda cyrus lrswipcda
> user.s.user.sarah default s lrswipcda cyrus lrswipcda
> user.s.user.scott default s lrswipcda cyrus lrswipcda
> user.t default t lrswipcda cyrus lrswipcda
> user.t.user default t lrswipcda cyrus lrswipcda
> user.t.user.test default t lrswipcda cyrus lrswipcda
> user.t.user.test.Sent default t lrswipcda cyrus lrswipcda
> user.t.user.test.Drafts default t lrswipcda cyrus lrswipcda
> user.t.user.test.Trash default t lrswipcda cyrus lrswipcda
> user.t.user.teresa default t lrswipcda cyrus lrswipcda
> user.t.user.teresa.Sent default t lrswipcda cyrus lrswipcda
> user.t.user.teresa.Drafts default t lrswipcda cyrus
> lrswipcda
> user.t.user.teresa.Trash default t lrswipcda cyrus
> lrswipcda
> user.u default u lrswipcda cyrus lrswipcda
> user.v default v lrswipcda cyrus lrswipcda
> user.w default w lrswipcda cyrus lrswipcda
> user.x default x lrswipcda cyrus lrswipcda
> user.y default y lrswipcda cyrus lrswipcda
> user.z default z lrswipcda cyrus lrswipcda
> user.stage. default stage lrswipcda cyrus lrswipcda
You mailbox list looks okay.
> cyrus at o-ren tmp $
>
> I then ran ctl_mboxlist, but that seems to have given me a broken file as
> well:
>
> o-ren root # ls -l /var/imap/
> total 558
> -rw------- 1 cyrus mail 144 Oct 17 13:26 annotations.db
> drwxr-xr-x 2 cyrus mail 256 Oct 17 13:26 db
> drwx------ 2 cyrus mail 144 Oct 17 13:26 db.backup1
> drwx------ 2 cyrus mail 112 Oct 17 13:07 db.backup2
> -rw------- 1 cyrus mail 491520 Oct 17 13:26 deliver.db
> drwxr-xr-x 2 cyrus mail 72 Oct 17 04:13 log
> -rw------- 1 cyrus mail 4540 Oct 17 16:35 mailboxes.db
> -rw------- 1 root root 32768 Oct 17 16:31 mailboxes.db.bak
> drwxr-xr-x 2 cyrus mail 72 Oct 17 04:13 msg
> drwxr-xr-x 2 cyrus mail 432 Oct 17 12:08 proc
> drwxr-xr-x 28 root root 672 Jul 4 14:50 quota
> drwxr-xr-x 28 cyrus mail 672 Jul 4 14:50 sieve
> drwxr-xr-x 2 cyrus mail 224 Oct 17 13:26 socket
> -rw------- 1 cyrus mail 32768 Oct 17 13:26 tls_sessions.db
> drwxr-xr-x 28 cyrus mail 672 Oct 17 04:13 user
>
> Significant size differance between the new and old files.
>
> o-ren root # file /var/imap/mailboxes.db
> /var/imap/mailboxes.db: Apple QuickTime movie file (skip)
>
> A quicktime movie file? Something is busted ...
Your file magic doesn't know skiplist files yet, usually nothing to worry.
>
> o-ren root # file /var/imap/mailboxes.db.bak
> /var/imap/mailboxes.db.bak: Berkeley DB (Btree, version 9, native
> byte-order)
Hm, you said this was your old mailboxes db, now it appears to be BDB.
> o-ren root #
>
> This is the original which gives me the invalid magic header error.
>
> I am not sure where to go from here. Any takers? Maybe my conv.sh is
> broken?
>
> This is running on a Gentoo Linux PC.
I'm quite sure you were upgrading your cyrus-imapd and have been hit by
the fact that with 2.2, cyrus-imapd uses skiplist per default for
mailboxes.db. If that's the case here maybe the Gentoo cyrus-imapd
maintainers should include some magic to automatically convert databases
on upgrade or let the user know about the change. Or it's just a RTFM
issue :)
Simon
>
> Thanks,
>
> Mark
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
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