Incorrect shutdown when quitting with ctrl+C (was: Re: Db lock problem ?)

Yann Rouillard yann.rouillard at jouy.inra.fr
Wed Nov 2 16:17:11 EST 2005


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




More information about the Info-cyrus mailing list