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