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=<i...@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(i...@mydomain.com), session=<UbiBrU/tvACXCCva>: Disconnected: Disconnected in IDLE in=654 out=704677 Dec 12 06:50:25 pop01eeh dovecot: imap(i...@mydomain.com), session=<UbiBrU/tvACXCCva>: Panic: Message count decreased Dec 12 06:50:25 pop01eeh dovecot: imap(i...@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(i...@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

Reply via email to