[Dovecot] Dovecot 2.1.7 crash (with core dumped)

Alessio Cecchi alessio at skye.it
Thu Dec 12 10:10:32 EET 2013


Hi,

I'm running dovecot 2.1.7 with vpopmail auth and Maildir on NFS (I have 
only one POP/IMAP server). All works fine but sometimes dovecot "imap" 
process crush and I would like to understand why:

Error in log files:

Dec 12 06:32:56 pop01eeh dovecot: imap-login: Login: 
user=<info at mydomain.com>, method=PLAIN, rip=1.2.3.4, lip=192.168.1.3, 
mpid=4086, session=<UbiBrU/tvACXCCva>
Dec 12 06:50:25 pop01eeh dovecot: imap(info at mydomain.com), 
session=<UbiBrU/tvACXCCva>: Disconnected: Disconnected in IDLE in=654 
out=704677
Dec 12 06:50:25 pop01eeh dovecot: imap(info at mydomain.com), 
session=<UbiBrU/tvACXCCva>: Panic: Message count decreased
Dec 12 06:50:25 pop01eeh dovecot: imap(info at mydomain.com), 
session=<UbiBrU/tvACXCCva>: Error: Raw backtrace: 
/usr/lib/dovecot/libdovecot.so.0(+0x4892a) [0x7f68af1ae92a] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x48976) [0x7f68af1ae976] -> 
/usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f68af181faf] -> 
dovecot/imap() [0x4191e9] -> dovecot/imap() [0x40b366] -> dovecot/imap() 
[0x40b69c] -> dovecot/imap(command_exec+0x3d) [0x411ffd] -> 
dovecot/imap(client_command_cancel+0x3a) [0x4108da] -> 
dovecot/imap(client_destroy+0xdd) [0x41178d] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7f68af1bab56] 
-> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x9f) 
[0x7f68af1bbb8f] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) 
[0x7f68af1baaf8] -> 
/usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) 
[0x7f68af1a6413] -> dovecot/imap(main+0x2a4) [0x419dd4] -> 
/lib/libc.so.6(__libc_start_main+0xfd) [0x7f68aee22c8d] -> 
dovecot/imap() [0x4090b9]
Dec 12 06:50:25 pop01eeh dovecot: imap(info at mydomain.com), 
session=<UbiBrU/tvACXCCva>: Fatal: master: service(imap): child 4086 
killed with signal 6 (core dumped)


Backtrace:

# gdb /usr/libexec/dovecot/imap /home/dovecot/core
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
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".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/libexec/dovecot/imap...done.

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /usr/lib/dovecot/libdovecot-storage.so.0...done.
Loaded symbols for /usr/lib/dovecot/libdovecot-storage.so.0
Reading symbols from /usr/lib/dovecot/libdovecot.so.0...done.
Loaded symbols for /usr/lib/dovecot/libdovecot.so.0
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /usr/lib/libssl.so.0.9.8...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libssl.so.0.9.8
Reading symbols from /usr/lib/libcrypto.so.0.9.8...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.8
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols 
found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib/libz.so.1...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/libpthread.so.0...(no debugging symbols 
found)...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /usr/lib/dovecot/lib01_acl_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib01_acl_plugin.so
Reading symbols from /usr/lib/dovecot/lib02_imap_acl_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib02_imap_acl_plugin.so
Reading symbols from /usr/lib/dovecot/lib10_quota_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib10_quota_plugin.so
Reading symbols from /usr/lib/dovecot/lib11_imap_quota_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib11_imap_quota_plugin.so
Reading symbols from /usr/lib/dovecot/lib20_expire_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib20_expire_plugin.so
Reading symbols from /usr/lib/dovecot/lib20_zlib_plugin.so...done.
Loaded symbols for /usr/lib/dovecot/lib20_zlib_plugin.so
Reading symbols from /lib/libbz2.so.1.0...(no debugging symbols 
found)...done.
Loaded symbols for /lib/libbz2.so.1.0
Reading symbols from /lib/libgcc_s.so.1...(no debugging symbols 
found)...done.
Loaded symbols for /lib/libgcc_s.so.1
Core was generated by `dovecot/imap'.
Program terminated with signal 6, Aborted.
#0  0x00007f68aee361b5 in raise () from /lib/libc.so.6
(gdb) bt full
#0  0x00007f68aee361b5 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0x00007f68aee38fc0 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0x00007f68af1ae93d in default_fatal_finish (type=<value optimized 
out>, status=0) at failures.c:191
         backtrace = 0x1980248 
"/usr/lib/dovecot/libdovecot.so.0(+0x4892a) [0x7f68af1ae92a] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x48976) [0x7f68af1ae976] -> 
/usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f68af181faf] -> 
dovecot/im"...
#3  0x00007f68af1ae976 in i_internal_fatal_handler (ctx=0x7fffb9588e70, 
format=<value optimized out>, args=<value optimized out>) at failures.c:649
         status = 0
#4  0x00007f68af181faf in i_panic (format=0xff6 <Address 0xff6 out of 
bounds>) at failures.c:263
         ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0}
         args = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 
0x7fffb9588f40, reg_save_area = 0x7fffb9588e80}}
#5  0x00000000004191e9 in imap_sync_deinit (ctx=0x1a36ae0, 
sync_cmd=0x19a54c0) at imap-sync.c:242
         client = 0x19a48e0
         status = {messages = 1983, recent = 0, unseen = 0, uidvalidity 
= 1290163110, uidnext = 84072, first_unseen_seq = 0, first_recent_uid = 
84072,
           last_cached_seq = 0, highest_modseq = 1, keywords = 0x0, 
permanent_flags = 0, nonpermanent_modseqs = 1, permanent_keywords = 0,
           allow_new_keywords = 0}
         sync_status = {sync_delayed_expunges = 0}
         ret = 0
#6  0x000000000040b366 in idle_finish (ctx=0x19a55b0, done_ok=false, 
free_cmd=false) at cmd-idle.c:38
         client = 0x19a48e0
#7  0x000000000040b69c in cmd_idle_continue (cmd=0x19a54c0) at 
cmd-idle.c:234
         client = 0x19a48e0
         ctx = 0x19a55b0
         orig_offset = 704677
#8  0x0000000000411ffd in command_exec (cmd=0x19a54c0) at 
imap-commands.c:148
         hook = 0x1989cd0
         ret = <value optimized out>
#9  0x00000000004108da in client_command_cancel (_cmd=0x7fffb9589088) at 
imap-client.c:136
         cmd = 0x19a54c0
         cmd_ret = <value optimized out>
#10 0x000000000041178d in client_destroy (client=0x19a48e0, 
reason=<value optimized out>) at imap-client.c:202
         cmd = 0x0
         __FUNCTION__ = "client_destroy"
#11 0x00007f68af1bab56 in io_loop_call_io (io=0x1a35ad0) at ioloop.c:379
         ioloop = 0x1988670
         t_id = 2
#12 0x00007f68af1bbb8f in io_loop_handler_run (ioloop=<value optimized 
out>) at ioloop-epoll.c:213
         ctx = 0x19889e0
         event = 0x1988a50
         list = 0x19a5410
         io = 0xff6
         tv = {tv_sec = 29, tv_usec = 999250}
         msecs = <value optimized out>
         ret = <value optimized out>
         i = 0
         call = false
#13 0x00007f68af1baaf8 in io_loop_run (ioloop=0x1988670) at ioloop.c:398
No locals.
#14 0x00007f68af1a6413 in master_service_run (service=0x1988520, 
callback=0xff6) at master-service.c:544
No locals.
---Type <return> to continue, or q <return> to quit---
#15 0x0000000000419dd4 in main (argc=1, argv=0x1988370) at main.c:389
         set_roots = {0x41cf20, 0x0}
         login_set = {auth_socket_path = 0x1980078 
"/var/run/dovecot/auth-master", postlogin_socket_path = 0x0, 
postlogin_timeout_secs = 60,
           callback = 0x41a0b0 <login_client_connected>, 
failure_callback = 0x41a050 <login_client_failed>}
         service_flags = <value optimized out>
         storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT
         username = 0x0
         c = <value optimized out>
(gdb)

And my configuration:

dovecot -n
# 2.1.17: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.8
auth_cache_size = 8 M
deliver_log_format = msgid=%m, from=%f, subject="%s": %$
dict {
   acl = mysql:/etc/dovecot/dovecot-share-folder.conf
   expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
   sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
dotlock_use_excl = no
first_valid_gid = 89
first_valid_uid = 89
last_valid_gid = 89
last_valid_uid = 89
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_fsync = always
mail_location = maildir:~/Maildir
mail_log_prefix = "%s(%u), session=<%{session}>: "
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = quota acl zlib expire
maildir_very_dirty_syncs = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character subaddress comparator-i;ascii-numeric relational regex 
imap4flags copy include variables body enotify environment mailbox date 
ihave vnd.dovecot.duplicate
mmap_disable = yes
namespace {
   list = children
   location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
   prefix = shared/%%n/
   separator = /
   subscriptions = no
   type = shared
}
namespace inbox {
   inbox = yes
   location =
   mailbox Drafts {
     special_use = \Drafts
   }
   mailbox Sent {
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     special_use = \Sent
   }
   mailbox Spam {
     special_use = \Junk
   }
   mailbox Trash {
     special_use = \Trash
   }
   prefix =
   separator = /
}
passdb {
   args = username_format=%Ld /etc/dovecot/extra/alias-domains-denylogin.txt
   deny = yes
   driver = passwd-file
}
passdb {
   args = cache_key=%s%u webmail=192.168.1.5
   driver = vpopmail
}
plugin {
   acl = vfile:/etc/dovecot/global-acls:cache_secs=300
   acl_shared_dict = proxy::acl
   expire = Trash
   expire2 = Spam
   expire_dict = proxy::expire
   quota = maildir:UserQuota
   quota2 = dict:Quota Usage::noenforcing:proxy::sqlquota
   quota_rule2 = Trash:storage=+100M
   quota_warning = storage=95%% quota-warning 95 %u
   quota_warning2 = storage=80%% quota-warning 80 %u
   sieve = ~/.dovecot.sieve
   sieve_before = /etc/dovecot/sieve/before.sieve
   sieve_dir = ~/sieve
   sieve_extensions = +vnd.dovecot.duplicate -vacation
}
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, bytes=%i/%o
protocols = imap pop3 sieve
service auth {
   unix_listener auth-userdb {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
}
service dict {
   process_limit = 300
   unix_listener dict {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
}
service imap-login {
   process_min_avail = 4
   service_count = 0
}
service imap {
   process_limit = 2400
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
}
service pop3-login {
   service_count = 0
}
service quota-warning {
   executable = script /etc/dovecot/scripts/quota-warning.sh
   unix_listener quota-warning {
     user = vpopmail
   }
   user = vpopmail
}
ssl_cert = </etc/dovecot/ssl/wildcard-myserver.net.pem
ssl_key = </etc/dovecot/ssl/wildcard-myserver.net.key
submission_host = localhost
userdb {
   args = quota_template=quota_rule=*:backend=%q
   driver = vpopmail
}
protocol lda {
   mail_plugins = quota acl zlib expire sieve
}
protocol imap {
   imap_client_workarounds = delay-newmail tb-extra-mailbox-sep 
tb-lsub-flags
   imap_idle_notify_interval = 29 mins
   mail_max_userip_connections = 15
   mail_plugins = quota acl zlib expire imap_quota imap_acl
}
protocol sieve {
   mail_max_userip_connections = 2
}
protocol pop3 {
   mail_max_userip_connections = 5
   pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

Thanks
-- 
Alessio Cecchi is:
@ ILS -> http://www.linux.it/~alessice/
on LinkedIn -> http://www.linkedin.com/in/alessice
Assistenza Sistemi GNU/Linux -> http://www.cecchi.biz
Cloud Email Hosting -> http://www.qboxmail.com
@ PLUG -> ex-Presidente, adesso senatore a vita, http://www.prato.linux.it


More information about the dovecot mailing list