imapd aborting in cyrus_ctime()
Jukka Salmi
j+asg at 2004.salmi.ch
Sun Aug 22 10:24:06 EDT 2004
Jukka Salmi --> info-cyrus (2004-08-22 14:51:50 +0200):
> when copying a certain message from and to a Cyrus IMAPd 2.2.8 system
> using IMAP, imapd abort()s (100% reproducible):
[...]
> # gdb imapd imapd.core
> GNU gdb 5.0nb1
> [...]
> This GDB was configured as "i386--netbsdelf"...
> Core was generated by `imapd'.
> Program terminated with signal 6, Abort trap.
> warning: current_sos: Can't read pathname for load map: Input/output error
> [...reading and loading symbols...]
> (gdb) bt
> #0 0x4840bae3 in kill () from /usr/lib/libc.so.12
> #1 0x4840b430 in abort () from /usr/lib/libc.so.12
> #2 0x808a81d in cyrus_ctime (date=-421120319,
> datebuf=0xbfbfbdfc "18-Dec-2002 19:2©7?H0¾¿¿") at global.c:605
> #3 0x80669f6 in index_fetchreply (mailbox=0x8139880, msgno=21,
> rock=0xbfbfc000) at index.c:2278
> #4 0x80650d9 in index_forsequence (mailbox=0x8139880, sequence=0x814d482 "",
> usinguid=1, proc=0x8066688 <index_fetchreply>, rock=0xbfbfc000,
> fetchedsomething=0xbfbfbfe8) at index.c:1539
> #5 0x8063550 in index_fetch (mailbox=0x8139880, sequence=0x814d480 "21",
> usinguid=1, fetchargs=0xbfbfc000, fetchedsomething=0xbfbfbfe8)
> at index.c:751
> #6 0x8056787 in cmd_fetch (tag=0x814d300 "166", sequence=0x814d480 "21",
> usinguid=1) at imapd.c:3087
> #7 0x805061f in cmdloop () at imapd.c:1076
> #8 0x804f1e2 in service_main (argc=1, argv=0x8144000, envp=0xbfbfdac0)
> at imapd.c:684
> #9 0x804d32a in main (argc=1, argv=0xbfbfdab8, envp=0xbfbfdac0)
> at service.c:557
> #10 0x804c1b0 in ___start ()
> (gdb)
The problem was the internaldate of the message being Mon, 27 Aug 1956...
After setting it to a past-epoch date everything worked fine.
This happened because I wanted to set the INTERNALDATE of all messages to
the date in its ^Date: header: I changed access and modification times of
all mail files to the corresponding dates, removed cyrus.index files and
reconstructed the mailboxes. Unfortunately the message which caused imapd
to abort() contained a date in 1956, and that's what imapd didn't like...
Cheers, Jukka
--
bashian roulette:
$ ((RANDOM%6)) || rm -rf ~
---
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