Hi, Today our Cyrus IMAP server crashed and during startup it hung while executing ctl_cyrusdb -r. ctl_cyrusdb looped over these system calls:
2898: poll(0xFFBEE050, 0, 4000) = 0 2898: open64("/var/cyrus/imap/mailboxes.db", O_RDWR) Err#24 EMFILE 2898: poll(0xFFBEE050, 0, 6000) (sleeping...) 2898: poll(0xFFBEE050, 0, 6000) = 0 2898: stat64("/var/cyrus/imap/mailboxes.db", 0xFFBEE1B8) = 0 2898: open64("/var/cyrus/imap/mailboxes.db", O_RDWR) Err#24 EMFILE 2898: poll(0xFFBEE050, 0, 2000) (sleeping...) 2898: poll(0xFFBEE050, 0, 2000) = 0 2898: open64("/var/cyrus/imap/mailboxes.db", O_RDWR) Err#24 EMFILE 2898: poll(0xFFBEE050, 0, 4000) (sleeping...) It ran for more than a half hour on a Sun Enterprise 450 server with mailboxes for about 100 users. I tried to dump mailboxes.db or do a reconstruct of the user folders but the error messages were always "can't read mailboxes file". The syslog message after startup was: Nov 2 10:33:13 ducati master[3113]: [ID 392559 local6.debug] about to exec /opt/cyrus-2.1.13/bin/ctl_cyrusdb Nov 2 10:33:13 ducati ctl_cyrusdb[3113]: [ID 702911 local6.notice] recovering cyrus databases Nov 2 10:33:17 ducati ctl_cyrusdb[2898]: [ID 866726 local6.warning] DBERROR db4: fatal region error detected; run recovery Nov 2 10:33:17 ducati last message repeated 3 times Nov 2 10:33:17 ducati ctl_cyrusdb[2898]: [ID 866726 local6.warning] DBERROR db4: PANIC: DB_RUNRECOVERY: Fatal error, run database recovery Nov 2 10:33:17 ducati ctl_cyrusdb[2898]: [ID 864961 local6.crit] DBERROR: critical database situation After recovering mailboxes.db from tape backup and running 'reconstruct -r -f' user the system is running now again. QUESTION: How can one reconstruct a corrupt mailboxes.db file from the user mailfolders? The option 'reconstruct -m' is not implemented. At least it should be possible to create an empty mailboxes.db file and then run 'reconstruct -r -f' one can live with lost information about seen state and subscribed mailboxes. Thanks in advance for help. Regards, Bernd --- 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