Your message dated Sat, 21 Mar 2009 15:17:30 GMT
with message-id <[email protected]>
and subject line cyrus21-imapd has been removed from Debian, closing #221479
has caused the Debian Bug report #221479,
regarding cyrus21-imapd: Crash with corrupted skiplist DB
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
221479: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=221479
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: cyrus21-imapd
Version: 2.1.15-10.cmt
Severity: important
The mail partition on our mail server managed to fill up, and the .seen
file for one user got corrupted so badly that imapd would crash every
time he logged in. Some diagnostics:
mail.log:
Nov 18 07:55:04 pigeon cyrus/imapd[30423]: login: [192.168.65.88] bweidner
plain+TLS User logged in
Nov 18 07:55:05 pigeon cyrus/master[24822]: process 30423 exited, signaled to
death by 10
gdb backtrace of crash:
Program received signal SIGBUS, Bus error.
#0 0x12008112c in LEVEL (ptr=0x200021c57f4 "") at cyrusdb_skiplist.c:379
#1 0x1200812f8 in RECSIZE (ptr=0x200021c57f4 "") at cyrusdb_skiplist.c:396
#2 0x120087bcc in recovery (db=0x120162160) at cyrusdb_skiplist.c:1959
#3 0x120082534 in myopen (
fname=0x120162120 "/var/lib/cyrus/user/b/bweidner.seen", flags=1,
ret=0x1201620f8) at cyrusdb_skiplist.c:730
#4 0x1200685a0 in seen_open (mailbox=0x12012d528,
user=0x12015daa0 "bweidner", flags=1, seendbptr=0x12012bef8)
at seen_db.c:161
#5 0x120025498 in index_check (mailbox=0x12012d528, usinguid=0, checkseen=1)
at index.c:345
#6 0x120024d70 in index_newmailbox (mailbox=0x12012d528, examine_mode=0)
at index.c:227
#7 0x120011b08 in cmd_select (tag=0x120143330 "27", cmd=0x1201433a0 "Select",
name=0x120161770 "INBOX") at imapd.c:2715
#8 0x12000d890 in cmdloop () at imapd.c:1595
#9 0x1200097cc in service_main (argc=1, argv=0x120135a90, envp=0x11ffffa30)
at imapd.c:772
#10 0x120006ae4 in main (argc=4, argv=0x11ffffa08, envp=0x11ffffa30)
at service.c:566
strace excerpts referring to that file:
[...]
14:40:20.987677 open("/var/lib/cyrus/user/b/bweidner.seen", O_RDWR) = 16
[...]
14:40:20.988125 fcntl(16, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0,
len=0}) = 0
14:40:20.988245 fstat(16, {st_mode=S_IFREG|0600, st_size=14332, ...}) = 0
14:40:20.988382 stat("/var/lib/cyrus/user/b/bweidner.seen",
{st_mode=S_IFREG|0600, st_size=14332, ...}) = 0
14:40:20.988554 mmap(NULL, 24576, PROT_READ, MAP_SHARED, 16, 0) = 0x200021c2000
14:40:20.988694 fcntl(16, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0,
len=0}) = 0
14:40:20.989216 fcntl(16, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0,
len=0}) = 0
14:40:20.989343 fstat(16, {st_mode=S_IFREG|0600, st_size=14332, ...}) = 0
14:40:20.989466 stat("/var/lib/cyrus/user/b/bweidner.seen",
{st_mode=S_IFREG|0600, st_size=14332, ...}) = 0
14:40:20.989687 lseek(16, 60, SEEK_SET) = 60
14:40:20.989797 write(16, "\0\0\0\220", 4) = 4
14:40:20.989933 lseek(16, 64, SEEK_SET) = 64
14:40:20.990032 write(16, "\0\0\0\220", 4) = 4
[..lots more lseek/write pairs repeated..]
14:40:21.159254 lseek(16, 13156, SEEK_SET) = 13156
14:40:21.159350 write(16, "\0\0007h", 4) = 4
14:40:21.159471 lseek(16, 14244, SEEK_SET) = 14244
14:40:21.159563 write(16, "\0\0\3\30", 4) = 4
14:40:21.159687 lseek(16, 13492, SEEK_SET) = 13492
14:40:21.159781 write(16, "\0\0007\34", 4) = 4
14:40:21.159904 lseek(16, 13492, SEEK_SET) = 13492
14:40:21.160025 write(16, "\0\0007\270", 4) = 4
14:40:21.160148 lseek(16, 14312, SEEK_SET) = 14312
14:40:21.160254 write(16, "\0\0007\34", 4) = 4
14:40:21.160386 --- SIGBUS (Bus error) ---
The .seen file itself:
-rw------- 1 cyrus mail 14332 Nov 18 15:04 bweidner.seen
[I can send that file if necessary]
The code crashed in cyrusdb_skiplist.c:379:
/* how many levels does this record have? */
static int LEVEL(const char *ptr)
{
const bit32 *p, *q;
assert(TYPE(ptr) == DUMMY || TYPE(ptr) == INORDER || TYPE(ptr) == ADD);
p = q = (bit32 *) FIRSTPTR(ptr);
while (*p != (bit32)-1) p++; <---- crash here
return (p - q);
}
I guess there should be some sort of check that the search does not
reach the end of the file?
Hope that helps,
Chris
-- System Information
Debian Release: 3.0
Architecture: alpha
Kernel: Linux pigeon 2.4.21ev6-evms #1 Wed Sep 3 17:31:03 CEST 2003
alpha
Locale: LANG=C, LC_CTYPE=C
Versions of packages cyrus21-imapd depends on:
ii cyrus21-common 2.1.15-10.cmt Cyrus mail system (common files)
ii libc6.1 2.3.2.ds1-10 GNU C Library: Shared libraries an
ii libdb3 3.2.9-19 Berkeley v3 Database Libraries [ru
ii libsasl2 2.1.15-6 Authentication abstraction library
ii libssl0.9.7 0.9.7c-5 SSL shared libraries
ii libwrap0 7.6-9 Wietse Venema's TCP wrappers libra
--- End Message ---
--- Begin Message ---
Version: 2.1.18-5.2+rm
The cyrus21-imapd package has been removed from Debian so we are closing
the bugs that were still opened against it.
For more information about this package's removal, read
http://bugs.debian.org/432576 . That bug might give the reasons why
this package was removed, and suggestions of possible replacements.
Don't hesitate to reply to this mail if you have any question.
Thank you for your contribution to Debian.
Kind regards,
--
Marco Rodrigues
--- End Message ---
_______________________________________________
Pkg-Cyrus-imapd-Debian-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-cyrus-imapd-debian-devel