Hi, I decided to make a stack trace from imapd which finally resolved the segmentation fault issue (indirectly):
#0 prot_printf (s=0x0, fmt=0x8081f99 "* BYE Fatal error: %s\r\n") at prot.c:616 616 assert(s->write); (gdb) bt #0 prot_printf (s=0x0, fmt=0x8081f99 "* BYE Fatal error: %s\r\n") at prot.c:616 #1 0x0804d4c3 in fatal (s=0x8086500 "configdirectory option not specified in configuration file", code=75) at imapd.c:638 #2 0x0806da2c in config_init (alt_config=0x0, ident=0xbffffa4c "service-imap") at config.c:103 #3 0x0804b9dc in main (argc=1, argv=0xbffffaf4, envp=0xbffffafc) at service.c:174 #4 0x401e068d in __libc_start_main (main=0x804b904 <main>, argc=1, ubp_av=0xbffffaf4, init=0x804a9e4 <_init>, fini=0x8080fe0 <_fini>, rtld_fini=0x4000b8b4 <_dl_fini>, stack_end=0xbffffaec) at ../sysdeps/generic/libc-start.c:129 So it seems to complain about the configurationfile and crashed because it fails to print the errormessage due to the NULL-pointer. After I had a closer look at my config file I found that I had made a little typo: cpnfigdirectory: /var/imap After fxing the config file and rerunning the mkimap script cyrus started up normally. I looked into the source to find out why s is null but I couldn't find any errors: void fatal(const char *s, int code) { static int recurse_code = 0; if (recurse_code) { /* We were called recursively. Just give up */ proc_cleanup(); snmp_increment(ACTIVE_CONNECTIONS, -1); exit(recurse_code); } recurse_code = code; prot_printf(imapd_out, "* BYE Fatal error: %s\r\n", s); prot_flush(imapd_out); shut_down(code); } Why is s == 0 when it is passed to prot_printf()? Regards, Georg -- Vote against Spam! http://www.politik-digital.de/spam/de/ The European Coalition Against Unsolicited Commercial Email: http://www.euro.cauce.org//