[Dovecot] Dovecot 2.0.rc4 (a30a30d1e25a): LMTP dies intermittently
Hi,
not sure what change caused this but it first appeared when building HG a30a30d1e25a. LMTP dies intermittently.
Aug 6 16:00:57 spectre dovecot: lmtp(5509, alias@domain.tld): b9ESKJkVXEyFFQAAqZii3w: sieve: msgid=<1281102852.6211.447.camel@kurkku.sapo.corppt.com>: stored mail into mailbox 'Public/Mailing-Lists/Dovecot' Aug 6 16:00:57 spectre dovecot: lmtp(5509): Disconnect from local: Client quit Aug 6 16:17:05 spectre dovecot: master: Error: service(lmtp): child 5509 killed with signal 11 (core not dumped)
Let me know if you need more details.
Regards Thomas
On Fri, 2010-08-06 at 16:36 +0200, Thomas Leuxner wrote:
Aug 6 16:17:05 spectre dovecot: master: Error: service(lmtp): child 5509 killed with signal 11 (core not dumped)
gdb backtrace is the only good way to know why it would dump a core:
- Set:
service lmtp { executable = lmtp -D }
- Run "ulimit -c unlimited" before starting dovecot
Anyway, are you using mbox format? Out-of-quota with mbox was crashing. This fixes it: http://hg.dovecot.org/dovecot-2.0/rev/4ef2280ee490
Am 06.08.2010 um 16:51 schrieb Timo Sirainen:
service lmtp { executable = lmtp -D }
Added that but still does not dump cores when LMTP crashes.
[19:22] root spectre:/etc/dovecot/conf.d# doveconf -n | grep executable executable = lmtp -D
- Run "ulimit -c unlimited" before starting dovecot
This is set.
What I can add is, it seems to crash on every second delivery. Not using 'mbox' but 'mdbox'
# 2.0.rc4 (a30a30d1e25a): /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-5-amd64 x86_64 Debian 5.0.5 auth_verbose = yes mail_location = mdbox:~/mdbox mail_plugins = acl quota managesieve_notify_capability = mailto managesieve_sieve_capability = comparator-i;octet comparator-i;ascii-casemap fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date spamtest spamtestplus virustest namespace { hidden = no inbox = yes location = prefix = separator = / type = private } namespace { list = yes location = maildir:/var/vmail/public:LAYOUT=fs:INDEX=~/public prefix = Public/ separator = / subscriptions = no type = public } passdb { args = username_format=%u /var/vmail/auth.d/%d/passwd driver = passwd-file } plugin { acl = vfile:/var/vmail/conf.d/%d/acls:cache_secs=300 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename quota = dict:user::file:%h/mdbox/dovecot-quota quota_rule = *:storage=1GB quota_rule2 = Trash:storage=+10%% sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_global_dir = /var/vmail/conf.d/%d/sieve } protocols = imap lmtp service auth-worker { user = doveauth } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } user = doveauth } service imap-login { inet_listener imap { address = 1.2.3.4 port = 143 } inet_listener imaps { port = 0 } } service lmtp { executable = lmtp -D unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/certs/host_domain_tld.crt ssl_key = </etc/ssl/private/host_domain_tld.key syslog_facility = local1 userdb { args = username_format=%u /var/vmail/auth.d/%d/passwd driver = passwd-file } verbose_proctitle = yes protocol lmtp { mail_plugins = $mail_plugins sieve } protocol imap { mail_plugins = $mail_plugins imap_acl imap_quota mail_log notify }
On Fri, 2010-08-06 at 19:27 +0200, Thomas Leuxner wrote:
Am 06.08.2010 um 16:51 schrieb Timo Sirainen:
service lmtp { executable = lmtp -D }
Added that but still does not dump cores when LMTP crashes.
What does it log? Is it just "(core not dumped)"? Usually it says a reason.
What I can add is, it seems to crash on every second delivery. Not using 'mbox' but 'mdbox'
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
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>
On Fri, 2010-08-06 at 19:50 +0200, Thomas Leuxner wrote:
#0 acl_mail_namespace_storage_added (ns=0xd33e10) at acl-mailbox-list.c:509
Am 06.08.2010 um 20:03 schrieb Timo Sirainen:
On Fri, 2010-08-06 at 19:50 +0200, Thomas Leuxner wrote:
#0 acl_mail_namespace_storage_added (ns=0xd33e10) at acl-mailbox-list.c:509
Looking good. Thanks.
participants (2)
-
Thomas Leuxner
-
Timo Sirainen