Help moving/updating Cyrus installation
Edward Rudd
eddie at omegaware.com
Tue Feb 17 15:35:39 EST 2004
You have encountered the famed DB4 and NPTL bug. Goto
http://www.invoca.ch/pub/packages/cyrus-imapd/ and download the updated
db4.spec for fedora core 1 and recompile.
On Sun, 2004-02-15 at 10:36, Ruth Ivimey-Cook wrote:
> Hi folks,
>
> I hope this case isn't a 'told you so', but I have a bit of a problem...
>
> Summary: I want to get imap running again, but it refuses to read my bdb
> (version 3) databases. How to I recover?
>
> I have been using Cyrus IMAPd 2.1.16 on a RH9 Linux server successfully
> for some time now. I decided I should upgrade the server OS to Fedora
> Core 1. I took a binary (tar-file) backup of the imap data, which I
> store on its own ext3 disk called /imap, along with other tar backups of
> other parts of the system. The OS install seems to have gone well,
> except that cyrus failed to start up, with errors like this:
>
>
> 23:09:26 master[1111]: setrlimit: Unable to set file descriptors limit to -1: Operation not permitted
> 23:09:26 master[1111]: retrying with 1024 (current max)
> 23:09:26 master[1111]: process started
> 23:09:26 master[1132]: about to exec /usr/cyrus/bin/ctl_cyrusdb
> 23:09:27 ctl_cyrusdb[1132]: recovering cyrus databases
> 23:09:27 ctl_cyrusdb[1132]: DBERROR db4: write: 0xbfffcf80, 8192: Invalid argument
> 23:09:27 ctl_cyrusdb[1132]: DBERROR: dbenv->open '/imap/conf/db' failed: Invalid argument
> 23:09:27 ctl_cyrusdb[1132]: DBERROR: init /imap/conf/db: cyrusdb error
> 23:09:27 ctl_cyrusdb[1132]: DBERROR db4: environment not yet opened
> 23:09:27 ctl_cyrusdb[1132]: DBERROR: opening /imap/conf/mailboxes.db: Invalid argument
> 23:09:27 ctl_cyrusdb[1132]: DBERROR: opening /imap/conf/mailboxes.db: cyrusdb error
> 23:09:27 master[1111]: process 1132 exited, status 75
> 23:09:27 master[1111]: no service 'sieve' in /etc/services, disabling sieve
> 23:09:27 master[1111]: no service 'lmtp' in /etc/services, disabling lmtp
> 23:09:27 master[1111]: ready for work
> 23:09:27 master[1133]: about to exec /usr/cyrus/bin/tls_prune
> 23:09:27 master[1134]: about to exec /usr/cyrus/bin/ctl_deliver
> 23:09:27 master[1135]: about to exec /usr/cyrus/bin/ctl_cyrusdb
> 23:09:27 ctl_cyrusdb[1135]: checkpointing cyrus databases
> 23:09:45 ctl_cyrusdb[1135]: DBERROR db4: unable to join the environment
> 23:09:45 ctl_cyrusdb[1135]: DBERROR: dbenv->open '/imap/conf/db' failed: Resource temporarily unavailable
> 23:09:45 ctl_cyrusdb[1135]: DBERROR: init /imap/conf/db: cyrusdb error
> 23:09:45 ctl_cyrusdb[1135]: done checkpointing cyrus databases
>
> So I thought "oh no"!
>
> Several hours later and after recompiling both imapd again (no luck) and
> switching from the RH kernel 2.4.22 with nptl to a standard kernel.org
> 2.4.24 kernel, and it still wasn't working.
>
> Note that I hadn't changed the cyrus code at all: it was the same code
> running against the same databases, and invoking the same copy of
> db4 4.1.25 (self-compiled with no threading).
>
> I eventually gave up and my email is now (i hope temporarily) back on
> the old /var/mail delivery :-(
>
> Things I can do: db_dump on the mailboxes.db file produces what
> looks like a valid dump.
>
> Things I can't do: any operation involving reading the database.
> [including cvt_mmboxlist using either the old or
> new executables]
>
> I have now created a build of 2.2.3, partly in the hope that it works
> better, and also because I want to get away from bdb: it has caused lots
> of hassle in the past. Running apps from that release doesn't help me,
> however. In the hope it's useful, I have included the non-data part of
> the db_dump -da output here, with my /etc/imap.conf file after it:
>
> In-memory DB structure:
> btree: 0x48000 (DB->open called, read-only)
> bt_meta: 0 bt_root: 1
> bt_maxkey: 0 bt_minkey: 2
> bt_compare: 0x400258ac bt_prefix: 0x4002590c
> bt_lpgno: 0
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> page 0: btree metadata level: 0 (lsn.file: 7 lsn.offset: 7784517)
> magic: 0x53162
> version: 8
> pagesize: 4096
> type: 9
> keys: 0 records: 0
> free list: 0
> last_pgno: 3
> flags: 0
> uid: 83 fe 0 0 42 3 0 0 48 f2 52 3d 37 3d 0 0 0 0 0 0
> maxkey: 0 minkey: 2
> root: 1
> page 1: btree internal level: 2 records: 0 (lsn.file: 7 lsn.offset: 7788837)
> entries: 2 offset: 4044
> [000] 4084 count: 0 pgno: 2 type: 1len: 0
> [001] 4044 count: 0 pgno: 3 type: 1len: 28 data: user.ruthc.Lists.F2S...
> page 2: btree leaf level: 1 (lsn.file: 7 lsn.offset: 7849118)
> prev: 0 next: 3 entries: 70 offset: 2044
> [000] 4080 len: 11 data: Junk E-mail
> [001] 4056 len: 21 data: 0 default anyone0x09rwi...
> [002] 4044 len: 8 data: user.cbs
> [003] 4004 len: 34 data: 0 default cbs0x09lrswip...
> [004] 3984 len: 14 data: user.cbs.Admin
> [005] 3944 len: 34 data: 0 default cbs0x09lrswip...
> ..snip...
> [060] 2296 len: 22 data: user.ruthc.wotug-ctt...
> [061] 2264 len: 26 data: 0 default ruthc0x09lrsw...
> db_dump: close: Permission denied
>
>
> The /etc/imap.conf file [note I'm not using the mysql stuff - it
> was an experiment]:
>
> configdirectory: /imap/conf
> sievedir: /imap/sieve
> sieveusehomedir: false
> sendmail: /usr/exim/bin/exim
> partition-default: /imap/spool
> admins: root ruthc
> srvtab: /imap/srvtab
> defaultacl: anyone write
> allowanonymouslogin: yes
> allowplaintext: yes
> auxprop_plugins: mysql digest-md5 cram-md5 plain
> #sasl_pwcheck_method: pwcheck
> sasl_pwcheck_method: saslauthd
> sasl_mech_list: mysql
> sasl_mysql_user: cyrus
> sasl_mysql_database: saslmail
> sasl_mysql_statement: select password from users where username = %u
> #sasl_mysql_statement: select %p from users where username = %u and realm = %r
> sasl_mysql_verbose: true
>
>
> ---
> 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
--
Edward Rudd <eddie at omegaware.com>
Website http://outoforder.cc/
---
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
More information about the Info-cyrus
mailing list