cyr_expire SIGSEGV
Wolfgang Breyha
wbreyha at gmx.net
Thu Jan 18 12:24:22 EST 2007
Hi!
I've a cyrus-imapd-2.3.7-7 built from the src.rpm at invoca.ch running on FC5.
I use the "delayed expunge" feature.
My cyrus.conf therefor has
delprune cmd="cyr_expire -E 3 -X 2" at=0400
Most of the time cyr_expire runs it crashes with SIGBUS or SIGSEGV.
It also crashes if I start it manually after it crashed during the night.
Doing a strace and "reconstruct -r"ing the user last accessed makes
cyr_expire happy again... at least for this users mailboxes.
I've activated coredumps and the backtrace always shows:
#0 0x0804e6f0 in cyrus_mutex_free ()
#1 0x08053213 in cyrus_mutex_free ()
#2 0x0804cb50 in expire ()
#3 0x0805a955 in mboxlist_findall ()
#4 0x0808ef0e in mboxlist_findall ()
#5 0x08057fc2 in mboxlist_findall ()
#6 0x0804cfa7 in expire ()
#7 0x004554e4 in __libc_start_main () from /lib/libc.so.6
#8 0x0804c6f1 in ?? ()
The last lines from strace shows write access to the quota file....
stat64("/var/spool/imap/user/xxxxx/Trash/cyrus.expunge",
{st_mode=S_IFREG|0600, st_size=736, ...}) = 0
mmap2(NULL, 736, PROT_READ, MAP_SHARED, 9, 0) = 0xb66ba000
lseek(9, 736, SEEK_SET) = 736
open("/var/spool/imap/user/xxxxx/Trash/cyrus.expunge.NEW",
O_RDWR|O_CREAT|O_TRUNC, 0666) = 12
time(NULL) = 1169137631
write(10, "\0\0\0\357\0\0\0\0\0\0\0\t\0\0\0`\0\0\0P\0\0\0\0E\257?"..., 96) = 96
_llseek(10, 0, [0], SEEK_SET) = 0
read(10, "\0\0\0\357\0\0\0\0\0\0\0\t\0\0\0`\0\0\0P\0\0\0\0E\257?"..., 4096) = 96
_llseek(10, 96, [96], SEEK_SET) = 0
open("/var/lib/imap/quota/g/user.xxxxx", O_RDWR) = 13
fcntl64(13, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
fstat64(13, {st_mode=S_IFREG|0600, st_size=16, ...}) = 0
stat64("/var/lib/imap/quota/g/user.xxxxx", {st_mode=S_IFREG|0600, st_size=16,
...}) = 0
fstat64(13, {st_mode=S_IFREG|0600, st_size=16, ...}) = 0
mmap2(NULL, 16, PROT_READ, MAP_SHARED, 13, 0) = 0xb66b9000
munmap(0xb66b9000, 16) = 0
unlink("/var/lib/imap/quota/g/user.xxxxx.NEW") = -1 ENOENT (No such file or
directory)
open("/var/lib/imap/quota/g/user.xxxxx.NEW", O_RDWR|O_CREAT|O_TRUNC, 0666) = 14
fcntl64(14, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
lseek(14, 0, SEEK_SET) = 0
write(14, "30244719\n512000\n", 16) = 16
ftruncate(14, 16) = 0
fsync(14) = 0
fstat64(14, {st_mode=S_IFREG|0600, st_size=16, ...}) = 0
rename("/var/lib/imap/quota/g/user.xxxxx.NEW",
"/var/lib/imap/quota/g/user.xxxxx") = 0
fcntl64(14, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
close(14) = 0
fcntl64(13, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
close(13) = 0
fstat64(12, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb66b9000
time(NULL) = 1169137631
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++
Any ideas?
Regards, Wolfgang Breyha
--
Wolfgang Breyha <wbreyha at gmx.net> | http://www.blafasel.at/
Vienna University Computer Center | Austria
More information about the Info-cyrus
mailing list