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