"Timo Sirainen" <tss@iki.fi> said:
On 8.4.2011, at 0.17, Nicholas VonHollen wrote:
Thanks for helping me out. It looks like no matter what I do, changing the executable line doesn't help. I even changed it to "executable = /bin/false" and it still reports a segfault. I verified the config with "dovecot -n", stopped using the "-c /etc/dovecot.conf", moved the conf file to the appropriate place, re-verified it, and I still can't affect it. I assume the crash is happening post-fork, pre-exec, if there is custom code for launching child processes. Since strace 'fixes' the problem, I'll try to figure it out under gdb, but to be honest, my C debugging skills are very rusty.
Ah, yes:
Apr 7 17:29:05 localhost dovecot: master: Error: service(imap): child 9690 killed with signal 11 (core dumps disabled)
It has "master:" prefix so it's pre-exec. But you got a core file earlier, right? You should be able to get a usable gdb backtrace then with "gdb dovecot core".
GDB still complains "warning: core file may not match specified executable file." when using anything but /bin/false. I tried using "gdb dovecot corefile" but got the same trace with nothing but _start. Is it possible to crash post-exec and pre-main? I'm not sure that makes sense, lol. You can't really pass pointers to child processes, so maybe ld is somehow screwed up? I can try it on a different OS with a similar RPM.
Nick VonHollen Rackspace Software Developer Desk: 540-443-2003 (internal 505-2003) Personal Cell: 757-710-7038