On 11/05/10 17:23 +0100, James Meara wrote: >Hi, > >I'm trying to get cyrus imap running on new machine, I've compiled and >installed it without errors but when I start master the imapd processes >are dying immediately from what looks like a divide by zero error. >May 11 17:23:52 mercury1 kernel: imapd[9664] trap divide error ip:407487 >sp:7fff5fa64420 error:0 in imapd[400000+102000] >May 11 17:23:52 mercury1 kernel: imapd[9667] trap divide error ip:407487 >sp:7fff0c8c7c90 error:0 in imapd[400000+102000] >May 11 17:23:52 mercury1 kernel: imapd[9668] trap divide error ip:407487 >sp:7fffdd4ce590 error:0 in imapd[400000+102000] >May 11 17:23:52 mercury1 kernel: imapd[9670] trap divide error ip:407487 >sp:7fff511f9b90 error:0 in imapd[400000+102000] See http://cyrusimap.web.cmu.edu/imapd/install-upgrade.html Have you tried reconstructing your mailboxes? You can use the debug_command in imapd.conf to further trouble shoot. From Debian's README.Debian.debug.gz file: Attaching debuggers to Cyrus, and getting traces ------------------------------------------------ You can tell Cyrus services to run a debugging command just before they start doing real work. This can be used to run strace, ltrace and gdb or ddd (for interactive debugging and back-tracing) quite easily. Set the shell command to be run in /etc/imapd.conf, option debug_command. Then, add the command line switch "-D" to the Cyrus services you want to run the debug_command in /etc/cyrus.conf, and restart cyrmaster using /etc/init.d/cyrus2.3 restart. The debugging command must be given as a single line in the configuration file. To get a back-trace using gdb: debug_command: /usr/bin/gdb -batch -cd=/tmp -x /usr/lib/cyrus/getbacktrace.gdb /usr/lib/cyrus/bin/%s %d >/tmp/gdb-backtrace.cyrus.%1$s.%2$d <&- 2>&1 & The above will produce a back-trace of every service run with -D that segfaults in the files /tmp/gdb-backtrace.cyrus.*; /usr/lib/cyrus/getbacktrace.gdb simply has the sequence of commands for gdb: c (to continue running the service), bt (to get the back-trace if the program didn't exit normally), quit (to quit gdb). For strace, you can use: debug_command: /usr/bin/strace -tt -o /tmp/strace.cyrus.%s.%d -p %2$d <&- 2>&1 & Which will produce straces in /tmp/strace.cyrus.* -- Dan White ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html