'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