Environment:

Fedora Core 1
2.4.22-1.2199.nptlsmp
db4-4.1.25-14
cyrus-imapd-2.1.16 (updated after the problem to cyrus-imapd-2.1.17)

Cyrus has worked flawlessly over year for me, but now out of sudden, DB crashed totally.

This is what happened:

--- clip ---
Nov 28 04:20:06 mail ctl_cyrusdb[908]: checkpointing cyrus databases
Nov 28 04:20:06 mail ctl_cyrusdb[908]: DBERROR db4: DB_LOGC->get: log record checksum mismatch
Nov 28 04:20:06 mail ctl_cyrusdb[908]: DBERROR db4: DB_LOGC->get: catastrophic recovery may be required
Nov 28 04:20:06 mail ctl_cyrusdb[908]: DBERROR db4: PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
Nov 28 04:20:06 mail ctl_cyrusdb[908]: DBERROR: critical database situation
Nov 28 04:20:23 mail imapd[757]: DBERROR db4: fatal region error detected; runrecovery
Nov 28 04:20:23 mail imapd[757]: DBERROR: error closing: DB_RUNRECOVERY: Fatal error, run database recovery
Nov 28 04:20:23 mail imapd[757]: DBERROR: error closing mailboxes: cyrusdb error
Nov 28 04:20:23 mail imapd[757]: DBERROR db4: fatal region error detected; run recovery
Nov 28 04:20:23 mail imapd[757]: DBERROR: error exiting application: DB_RUNRECOVERY: Fatal error, run database recovery
Nov 28 04:20:23 mail imapd[757]: DBERROR: error exiting application: cyrusdb error
--- clip ---


Commands run as cyrus user:

# db_stat -c
db_stat: fatal region error detected; run recovery
db_stat: DB_ENV->open: DB_RUNRECOVERY: Fatal error, run database recovery

# reconstruct -f
reconstruct:
    can't initialize mboxlist environment


Ouch! Suddenly, I was in big trouble.

After some googling I tried this (even though this hint is for OSX):

http://david.codebase.ca/index.cgi/os%20x/cyrus.writeback

But in my case, it didn't start to do anything by running "reconstruct" command.

I ended up restoring my imap dir from last working backups and then I was able to run "reconstruct -f" command. Ok, got it up and running, for now.

Afterwards I found that using "ctl_cyrusdb -r" might have helped:

http://www.kalamazoolinux.org/pipermail/members/2004-July/011219.html

But what files exactly I need to delete before running "ctl_cyrusdb -r"?

        deliver.db      ?
        mailboxes.db    ?
        tls_sessions.db ?
        db/*            ?


I guess the cause of the problem has something to do with cyrus's weekly tasks to rotate/clean db files. Is that correct? Could someone please explaing why/what happened and how can I prevent it from happening againg?


I've read from somewhere that there is a method to dump .db files into textformat and then in these cases you cound recover from those. How is this done? I could create a hourly cron job for it, just to be more safe.

Best regards,

  Toni
---
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

Reply via email to