2.4.8 sync_client crashes
Hi, After upgrading to 2.4.8 the sync_client crashes regularly: Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL Please see the attachment for a strace. I tried reconstructing the mailbox but that didn't help... On the syncserver I don't see any messages :( Rudy open("/mail/mail16/var/imap/lock/domain/u/ugent.be/v/user/victoria^montesrestrepo.lock", O_RDWR|O_CREAT|O_TRUNC, 0666) = 8 fcntl(8, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0 fcntl(3, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0 fstat(3, {st_mode=S_IFREG|0600, st_size=2315764, ...}) = 0 stat("/mail/mail16/var/imap/mailboxes.db", {st_mode=S_IFREG|0600, st_size=2315764, ...}) = 0 fcntl(3, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0 open("/mail/mail16/imap/domain/u/ugent.be/v/user/victoria^montesrestrepo/cyrus.index", O_RDWR) = 9 fstat(9, {st_mode=S_IFREG|0600, st_size=30752, ...}) = 0 mmap(NULL, 40960, PROT_READ, MAP_SHARED, 9, 0) = 0x7f74c7581000 fcntl(9, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0 stat("/mail/mail16/imap/domain/u/ugent.be/v/user/victoria^montesrestrepo/cyrus.header", {st_mode=S_IFREG|0600, st_size=219, ...}) = 0 open("/mail/mail16/imap/domain/u/ugent.be/v/user/victoria^montesrestrepo/cyrus.header", O_RDONLY) = 10 fstat(10, {st_mode=S_IFREG|0600, st_size=219, ...}) = 0 mmap(NULL, 219, PROT_READ, MAP_SHARED, 10, 0) = 0x7f74c7694000 munmap(0x7f74c7694000, 219) = 0 fcntl(9, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0 close(10) = 0 close(9)= 0 munmap(0x7f74c7581000, 40960) = 0 close(8)= 0 munmap(0x7f74c750, 528384) = 0 write(1, "META tine^lievr...@ugent.be\n", 28META tine^lievr...@ugent.be ) = 28 sendto(7, "<182>Apr 21 16:47:33 mail16/sync"..., 74, MSG_NOSIGNAL, NULL, 0) = 74 write(6, "GET META tine^lievr...@ugent.be\r"..., 33) = 33 read(6, "* LSUB (ugent.be!INBOX^Femke \"ug"..., 4096) = 592 write(2, "Fatal error: Internal error: ass"..., 82Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL ) = 82 sendto(7, "<179>Apr 21 16:47:33 mail16/sync"..., 128, MSG_NOSIGNAL, NULL, 0) = 128 exit_group(75) = ? cyrus@cyrprd3:~$ /usr/cyrus-2.4.8/bin/sync_client -C /etc/cyrus-ugent/conf/mail16/imapd.conf -l -v -f /mail/mail16/var/imap/sync/log-6813 -r -v -v MAILBOXES ugent.be!user.victoria^montesrestrepo META tine^lievr...@ugent.be Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL cyrus@cyrprd3:~$ echo $? 75
Re: 2.4.8 sync_client crashes
As some extra info if I run sync_client -u for that user I get the crash too. I have attached a gdb backtrace. I'm not sure if it will be handy. Rudy (gdb) step assertionfailed (file=0x451e97 "seen_db.c", line=127, expr=0x451efd "*seendbptr == NULL") at assert.c:57 57 assert.c: No such file or directory. in assert.c (gdb) bt #0 assertionfailed (file=0x451e97 "seen_db.c", line=127, expr=0x451efd "*seendbptr == NULL") at assert.c:57 #1 0x0043291a in seen_open (user=0x7fffee71 "tine^lievr...@ugent.be", flags=, seendbptr=0x7fffde48) at seen_db.c:127 #2 0x00407fd2 in do_user_seen (user=0x451e97 "seen_db.c", replica_seen=0x7786f0) at sync_client.c:1883 #3 0x0040b1f0 in do_user (userid=0x7fffee71 "tine^lievr...@ugent.be") at sync_client.c:2020 #4 0x0040d1ab in main (argc=5, argv=) at sync_client.c:2927
Re: 2.4.8 sync_client crashes
On 21 Apr 2011, at 16:51, Rudy Gevaert wrote: > As some extra info if I run sync_client -u for that user I get the crash too. > > I have attached a gdb backtrace. I'm not sure if it will be handy. > > Rudy Hi Rudy, After our discussion on IRC, I would suggest the attached patch as a fix - it seems to follow the same syntax as the other places seen_open() is called. Disclaimer: My C is very rusty so it might fail horribly. The patch is against clean 2.4.8 sources. Perhaps Bron could give it a quick check and if it's correct? Simon -- Simon Amor si...@leaky.org http://www.leaky.org/ sync_client.patch Description: Binary data
Re: 2.4.8 sync_client crashes
On 04/21/2011 06:30 PM, Simon Amor wrote: On 21 Apr 2011, at 16:51, Rudy Gevaert wrote: As some extra info if I run sync_client -u for that user I get the crash too. I have attached a gdb backtrace. I'm not sure if it will be handy. Rudy Hi Rudy, After our discussion on IRC, I would suggest the attached patch as a fix - it seems to follow the same syntax as the other places seen_open() is called. Disclaimer: My C is very rusty so it might fail horribly. The patch is against clean 2.4.8 sources. Perhaps Bron could give it a quick check and if it's correct? Simon Hi Simon, I see this is fixed? on the master branch, commits: 5de9eee60d947243a4b4b2f4eccc63cff2771b30 9dacbfcd6ee077a850570508d0d97f30bfe96640 Bron? :)
Re: 2.4.8 sync_client crashes
On Thu, Apr 21, 2011 at 05:30:14PM +0100, Simon Amor wrote: > On 21 Apr 2011, at 16:51, Rudy Gevaert wrote: > > > As some extra info if I run sync_client -u for that user I get the crash > > too. > > > > I have attached a gdb backtrace. I'm not sure if it will be handy. > > > > Rudy > > Hi Rudy, > > After our discussion on IRC, I would suggest the attached patch as a fix - it > seems to follow the same syntax as the other places seen_open() is called. > > Disclaimer: My C is very rusty so it might fail horribly. The patch is > against clean 2.4.8 sources. > > Perhaps Bron could give it a quick check and if it's correct? Simon - that's correct. I could have sworn that made it into 2.4.8 :( I'll put it on -stable at once. Bron.
Re: 2.4.8 sync_client crashes
Any plans for new stable release? If not I will pull the patch to Debian's 2.4.8. O. On Thu, Apr 21, 2011 at 20:36, Bron Gondwana wrote: > On Thu, Apr 21, 2011 at 05:30:14PM +0100, Simon Amor wrote: >> On 21 Apr 2011, at 16:51, Rudy Gevaert wrote: >> >> > As some extra info if I run sync_client -u for that user I get the crash >> > too. >> > >> > I have attached a gdb backtrace. I'm not sure if it will be handy. >> > >> > Rudy >> >> Hi Rudy, >> >> After our discussion on IRC, I would suggest the attached patch as a fix - >> it seems to follow the same syntax as the other places seen_open() is called. >> >> Disclaimer: My C is very rusty so it might fail horribly. The patch is >> against clean 2.4.8 sources. >> >> Perhaps Bron could give it a quick check and if it's correct? > > Simon - that's correct. I could have sworn that made it into 2.4.8 :( > I'll put it on -stable at once. > > Bron. > > -- Ondřej Surý