Hi,
I running Cyrus-IMAP on FreeBSD 5.3 sparc64. After update Cyrus-IMAP from 2.2.3 up to 2.2.10 got error:
Dec 27 21:23:19 satira nntp[24755]: DBERROR db4: PANIC: fatal region error detected; run recovery
Dec 27 21:23:19 satira nntp[24755]: DBERROR: critical database situation
Dec 27 21:23:19 satira master[24747]: service nntp pid 24755 in READY state: terminated abnormally
after add debug strings into cyrusdb_berkeley.c:
if ((opt = libcyrus_config_getint(CYRUSOPT_BERKELEY_LOCKS_MAX)) < 0) {
syslog(LOG_WARNING,
"DBERROR: invalid berkeley_locks_max value, using internal default");
} else {
+ syslog(LOG_WARNING,
+ "XXXX berkeley_locks_max: %d", opt);
r = dbenv->set_lk_max(dbenv, opt);
if (r) {
dbenv->err(dbenv, r, "set_lk_max");
syslog(LOG_ERR, "DBERROR: set_lk_max(): %s", db_strerror(r));
abort();
} else {
+ syslog(LOG_WARNING,
+ "XXXX set_lk_max return: %d", r);
}
}
Dec 28 14:34:21 satira master[38641]: ready for work
Dec 28 14:34:21 satira master[38643]: about to exec /usr/local/cyrus/bin/ctl_cyrusdb
Dec 28 14:34:21 satira ctl_cyrusdb[38643]: XXXX berkeley_locks_max: 0
Dec 28 14:34:21 satira ctl_cyrusdb[38643]: XXXX set_lk_max return: 0
my imapd.conf: configdirectory: /var/imap partition-default: /var/spool/imap admins: cyradm sieveusehomedir: false sievedir: /var/imap/sieve sasl_pwcheck_method: auxprop
man imapd.conf about default value of berkeley_locks_max:
berkeley_locks_max: 50000
Maximum number of locks to be held or requested in the berkeley
environment.
P.S after revert cyrusdb_berkeley.c,v 1.9 to cyrusdb_berkeley.c,v 1.4 it works fine for me!
Thanks a lot! --- 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