Berkeley DB upgrade - 2nd try

Andrew Morgan morgan at orst.edu
Tue Aug 29 18:26:07 EDT 2006


On Tue, 29 Aug 2006, Paul Boven wrote:

> Progress made since:
>
> I've tried to build a Cyrus without any Berkeley by specifying 
> '--without-bdb' - for that, I had to comment out a fixed '#include <db.h>' in 
> lib/auth_pts.h. But that only resulted in this error message when starting 
> up: "Fatal error: cyrusdb backend berkeley not supported". Other people seem 
> to have managed to go without Berkeley, but so far I haven't - and as Berkely 
> has better performance for the deliver.db and tls_sessions.db, that is not 
> the preferred workaround anyway.
>
> I've started building cyrus-imapd-2.2.13 - the Cyrus homepage still lists 
> 2.2.12 as the 'current' version, but is apparently outdated a bit. In another 
> posting to this list, Andrew Morgan hinted that "Cyrus v2.2.12 and older will 
> not work with Berkeley DB 4.3+ without a patch". With 2.2.13, at least I get 
> a meaningful error out of Berkeley when I start Cyrus:
>
> DBERROR db4: Skipping log file /var/imap/db/log.0000000001: historic log 
> version 7
> DBERROR db4: /var/imap/db/log.0000000002: log file open failed: No such file 
> or directory
> DBERROR db4: PANIC: No such file or directory
>
> Running db_recover from Berkeley4.4.20 gave me essentially the same errors.
>
> In the end, I figured it apparently doesn't care about log.00000001, so I 
> moved it aside. This time, it also stopped looking for log.00000002 and 
> recovered succesfully. And now Cyrus works again!
>
> Before I even want to consider doing this kind of surgery on any of my 
> production Cyrus servers, I'd like to know what would have been in 
> log.00000001 - what risks do I run when removing it?

If you have already eliminated all uses of Berkeley DB in your Cyrus 
backends (check your imapd.conf file), then anything in those log.xxx 
files is junk anyways.  :)

On my production Cyrus servers, I do not use Berkeley DB at all.  And yet 
I still have __db.00x and log.xxx files in the db directory.  The 
timestamps on those files correspond to the last time I restarted Cyrus. 
Go figure.

However, I do see that imapd processes have some of those files open (lsof 
output), so maybe there is still some use for them that I'm not aware of.

 	Andy


More information about the Info-cyrus mailing list