Am 06.08.2010 um 19:39 schrieb Timo Sirainen:
If you can easily reproduce it, then you could attach gdb into lmtp process and get the backtrace from there:
gdb -p
pidof lmtp
cont <make it crash> bt full
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Attaching to process 12841 Reading symbols from /usr/lib/dovecot/lmtp...Reading symbols from /usr/lib/debug/usr/lib/dovecot/lmtp...done. done. Reading symbols from /usr/lib/dovecot/libdovecot-storage.so.0...Reading symbols from /usr/lib/debug/usr/lib/dovecot/libdovecot-storage.so.0.0.0...done. done. Loaded symbols for /usr/lib/dovecot/libdovecot-storage.so.0 Reading symbols from /usr/lib/dovecot/libdovecot-lda.so.0...Reading symbols from /usr/lib/debug/usr/lib/dovecot/libdovecot-lda.so.0.0.0...done. done. Loaded symbols for /usr/lib/dovecot/libdovecot-lda.so.0 Reading symbols from /usr/lib/dovecot/libdovecot.so.0...Reading symbols from /usr/lib/debug/usr/lib/dovecot/libdovecot.so.0.0.0...done. done. Loaded symbols for /usr/lib/dovecot/libdovecot.so.0 Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/librt.so.1...done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /lib/libpthread.so.0...done. [Thread debugging using libthread_db enabled] [New Thread 0x7ffa65801700 (LWP 12841)] Loaded symbols for /lib/libpthread.so.0 Reading symbols from /lib/libnss_files.so.2...done. Loaded symbols for /lib/libnss_files.so.2 Reading symbols from /usr/lib/dovecot/modules/lib01_acl_plugin.so...Reading symbols from /usr/lib/debug/usr/lib/dovecot/modules/lib01_acl_plugin.so...done. done. Loaded symbols for /usr/lib/dovecot/modules/lib01_acl_plugin.so Reading symbols from /usr/lib/dovecot/modules/lib10_quota_plugin.so...Reading symbols from /usr/lib/debug/usr/lib/dovecot/modules/lib10_quota_plugin.so...done. done. Loaded symbols for /usr/lib/dovecot/modules/lib10_quota_plugin.so Reading symbols from /usr/lib/dovecot/modules/lib90_sieve_plugin.so...Reading symbols from /usr/lib/debug/usr/lib/dovecot/modules/lib90_sieve_plugin.so...done. done. Loaded symbols for /usr/lib/dovecot/modules/lib90_sieve_plugin.so Reading symbols from /usr/lib/dovecot/libdovecot-sieve.so.0...Reading symbols from /usr/lib/debug/usr/lib/dovecot/libdovecot-sieve.so.0.0.0...done. done. Loaded symbols for /usr/lib/dovecot/libdovecot-sieve.so.0 0x00007ffa648015f3 in epoll_wait () from /lib/libc.so.6 (gdb) cont Continuing.
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffa65801700 (LWP 12841)] acl_mail_namespace_storage_added (ns=0xd33e10) at acl-mailbox-list.c:509 509 acl-mailbox-list.c: No such file or directory. in acl-mailbox-list.c (gdb) bt full #0 acl_mail_namespace_storage_added (ns=0xd33e10) at acl-mailbox-list.c:509 auser = <value optimized out> backend = <value optimized out> current_username = 0xd36268 "raw user" owner_username = <value optimized out> owner = <value optimized out> #1 0x00007ffa65351829 in hook_mail_namespace_storage_added (ns=0xd33e10) at mail-storage-hooks.c:256 hooks__foreach_end = (const void *) 0xd371a0 hooks = (const struct mail_storage_hooks * const *) 0xd37180 #2 0x00007ffa65351274 in mail_storage_create (ns=0xd33e10, driver=0xcf0e58 "=�<e�\177", flags=0, error_r=0x7fff96ea0ea0) at mail-storage.c:333 storage_class = (struct mail_storage *) 0x7ffa655ebf00 storage = (struct mail_storage *) 0xd3a1c8 list_set = {layout = 0xcdf6f8 "none", root_dir = 0xcdf6f0 "", index_dir = 0x0, control_dir = 0x0, alt_dir = 0x0, inbox_path = 0x0, subscription_fname = 0x7ffa653d188b "subscriptions", maildir_name = 0x0, mailbox_dir_name = 0x0} data = 0x407806 ":LAYOUT=none" p = <value optimized out> __FUNCTION__ = "mail_storage_create" #3 0x0000000000404c41 in client_create (fd_in=<value optimized out>, fd_out=11, conn=<value optimized out>) at client.c:145 client = (struct client *) 0xcfcc28 pool = (pool_t) 0xcfcc00 #4 0x00007ffa64ed29ad in master_service_listen (l=0xcef048) at master-service.c:736 service = (struct master_service *) 0xce7480 conn = {fd = 11, listen_fd = 7, remote_ip = {family = 0, u = {ip6 = {in6_u = {u6_addr8 = '\0' <repeats 15 times>, u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, u6_addr32 = {0, 0, 0, 0}}}, ip4 = { s_addr = 0}}}, remote_port = 0, fifo = 0, ssl = 0, accepted = 1} __FUNCTION__ = "master_service_listen" #5 0x00007ffa64ee3fcb in io_loop_handler_run (ioloop=<value optimized out>) at ioloop-epoll.c:212 ctx = (struct ioloop_handler_context *) 0xcee480 event = (const struct epoll_event *) 0xcee4f0 list = (struct io_list *) 0xcef110 io = (struct io_file *) 0xcef0d0 tv = {tv_sec = 2147483, tv_usec = 0} t_id = 2 msecs = <value optimized out> ret = 1 call = <value optimized out> #6 0x00007ffa64ee3148 in io_loop_run (ioloop=0xce75b0) at ioloop.c:350 No locals. #7 0x00007ffa64ed2aa3 in master_service_run (service=0xce7480, callback=0) at master-service.c:496 No locals. #8 0x00000000004043c2 in main (argc=2, argv=0xce7370) at main.c:114 set_roots = {0x6098a0, 0x4081e0, 0x0} service_flags = <value optimized out> storage_service_flags = 739 c = <value optimized out>