On 8.4.2013, at 12.19, Pigi pigi@frumar.it wrote:
gdb /usr/local/libexec/dovecot/imap 16400 .. I took a sligtly different approach: gdb /usr/local/dovecot/libexec/dovecot/indexer-worker
ps -ef | grep indexer-worker | grep -v grep |awk '{print $2}'
thus attaching to indexer-worker, which I think ( but not sure ) it should be fine.
Oh, right, I forgot which process you were gdbing :)
Program received signal SIGSEGV, Segmentation fault. 0xfebd65dc in _malloc_unlocked () from /lib/libc.so.1 (gdb) bt full #0 0xfebd65dc in _malloc_unlocked () from /lib/libc.so.1 No symbol table info available. #1 0xfebd66e4 in realloc () from /lib/libc.so.1 No symbol table info available. #2 0xff1d9a70 in pool_system_realloc (pool=0xff21576c, mem=0xff21576c, old_size=0, new_size=8192) at mempool-system.c:115 No locals. #3 0xff1cda28 in i_realloc (mem=0x0, old_size=0, new_size=8192) at imem.c:14 No locals.
Looks to me like memory corruption, which is just about impossible to debug if you don't have valgrind or a similar tool (and I don't think Solaris has any such free tools).
Do you happen to get any other crashes where it doesn't crash in malloc code? You showed previously that it was crashing with SIGBUS somewhere.