After some test, it appears this problem happens when cyrus is launched from the command line and then stopped using Ctrl+C hotkey.
In this case, all processes (master and imapd/pop3d/lmtpd children) receive a SIGINT signal. In the standard case, cyrus is stopped by sending a SIGINT signal to the master process which send the SIGTERM signal to all imapd/pop3d/lmtpd children, no problem in this case. I don't understand why but it seems some locks are not properly released in the Ctrl+C case. Any clue why this problems happens ? The lock problem can be solved after by launching ctl_cyrusdb -r. Yann Le mercredi 02 novembre 2005 à 18:07 +0100, Yann Rouillard a écrit : > Hi, > > I have a weird problem on a solaris server. > Sometimes cyrus is stuck trying to open the berkeley database. > > Cyrus imapd 2.2.12 > Cyrus sasl 2.1.21 > solaris 9 > > I do a fresh install, I start and stop cyrus to see if everything is > fine, it seems ok. > > Then I try to launch mbpath and mbpath is stuck in some mutex lock: > > sysconfig(_CONFIG_NPROC_ONLN) = 2 > stat64("/opt/csw/var/cyrus/config/db/DB_CONFIG", 0xFFBFDE28) Err#2 > ENOENT > open64("/opt/csw/var/cyrus/config/db/DB_CONFIG", O_RDONLY) Err#2 ENOENT > stat64("/var/tmp", 0xFFBFDE40) = 0 > stat64("/opt/csw/var/cyrus/config/db/__db.001", 0xFFBFDE88) = 0 > open64("/opt/csw/var/cyrus/config/db/__db.001", O_RDWR) = 3 > fcntl(3, F_SETFD, 0x00000001) = 0 > ioctl(3, 0x2000664C, 0x00000001) = 0 > fstat64(3, 0xFFBFDF08) = 0 > close(3) = 0 > open64("/opt/csw/var/cyrus/config/db/__db.001", O_RDWR) = 3 > fcntl(3, F_SETFD, 0x00000001) = 0 > ioctl(3, 0x2000664C, 0x00000001) = 0 > mmap64(0x00000000, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = > 0xFEED0000 > close(3) = 0 > stat64("/opt/csw/var/cyrus/config/db/__db.002", 0xFFBFDE80) = 0 > open64("/opt/csw/var/cyrus/config/db/__db.002", O_RDWR) = 3 > fcntl(3, F_SETFD, 0x00000001) = 0 > ioctl(3, 0x2000664C, 0x00000001) = 0 > mmap64(0x00000000, 663552, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = > 0xFED00000 > close(3) = 0 > stat64("/opt/csw/var/cyrus/config/db/__db.003", 0xFFBFDEA0) = 0 > open64("/opt/csw/var/cyrus/config/db/__db.003", O_RDWR) = 3 > fcntl(3, F_SETFD, 0x00000001) = 0 > ioctl(3, 0x2000664C, 0x00000001) = 0 > mmap64(0x00000000, 98304, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = > 0xFEDC0000 > close(3) = 0 > lwp_mutex_lock(0xFEED1ED0) (sleeping...) > > Cyrus is already installed on 3 other solaris servers and works fine. > Any idea what's the cause of this problem ? > > Cheers, > > Yann > > ---- > 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 ---- 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