[BUG] Dovecot 2.2.21 crashing with assertion failed: (!have_wait_unfinished || unfinished_count > 0)

Gary Stanley gary at cpanel.net
Thu Feb 11 18:53:26 UTC 2016


Hello

Dovecot's IMAP process appears to be crashing at random times for a few 
users, but one is crashing at least 3 to 5 times an hour.

I applied these patches per 
http://dovecot.org/list/dovecot/2016-January/102933.html

/https://github.com/dovecot/core/commit/1ddf959a750f3860feff4ab3f0e908f32740978f.diff 
//https://github.com/dovecot/core/commit/c8e9fa2ffa2566e75f0500808b1bc9bf5d9db024.diff 
//https://github.com/dovecot/core/commit/15307c2c91854e766bd9fb095d611a29b3f7572e.diff 
//https://github.com/dovecot/core/commit/c7801f830c7d2e7d340065cdd5a5c795b1726223.diff 
//https://github.com/dovecot/core/commit/f136b0050b3125b466af73984177250b7ed1a3be.diff 
/

But it's still crashing.

# 2.2.21 (5345f22): /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-604.30.3.lve1.3.63.el6.x86_64 x86_64 CloudLinux 
Server release 6.7 (Aleksei Gubarev)
auth_cache_size = 1 k
auth_mechanisms = plain login
auth_username_chars = 
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$-=?^_{}~./@+%"
disable_plaintext_auth = no
first_valid_uid = 201
mail_plugins = " zlib"
maildir_very_dirty_syncs = yes
namespace {
   inbox = yes
   location =
   mailbox Archive {
     auto = create
     special_use = \Archive
   }
   mailbox Archives {
     auto = no
     special_use = \Archive
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Junk {
     auto = create
     special_use = \Junk
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     auto = no
     special_use = \Sent
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix = INBOX.
   type = private
}
passdb {
   args = /usr/local/cpanel/bin/dovecot-wrap
   driver = checkpassword
}
plugin {
   acl = vfile
   quota = maildir
   quota_rule = INBOX.Trash:ignore
}
protocols = imap pop3
service auth {
   unix_listener auth-client {
     mode = 0666
   }
}
service imap-login {
   client_limit = 500
   inet_listener imap {
     address = *
   }
   inet_listener imaps {
     address = *
   }
   process_limit = 50
   process_min_avail = 2
   service_count = 0
   vsz_limit = 64 M
}
service imap {
   process_limit = 512
   vsz_limit = 256 M
}
service managesieve-login {
   client_limit = 500
   process_limit = 50
   process_min_avail = 2
   service_count = 0
   vsz_limit = 64 M
}
service managesieve {
   process_limit = 512
   vsz_limit = 256 M
}
service pop3-login {
   client_limit = 500
   inet_listener pop3 {
     address = *
   }
   inet_listener pop3s {
     address = *
   }
   process_limit = 50
   process_min_avail = 2
   service_count = 0
   vsz_limit = 64 M
}
service pop3 {
   process_limit = 512
   vsz_limit = 256 M
}
ssl_cert = </etc/dovecot/ssl/dovecot.crt
ssl_cipher_list = 
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_key = </etc/dovecot/ssl/dovecot.key
ssl_protocols = !SSLv2 !SSLv3
userdb {
   driver = prefetch
}
userdb {
   args = /usr/local/cpanel/bin/dovecot-wrap
   driver = checkpassword
}
protocol imap {
   imap_capability = +NAMESPACE
   imap_idle_notify_interval = 24 mins
   imap_logout_format = in=%i, out=%o, bytes=%i/%o
   mail_max_userip_connections = 20
   mail_plugins = acl quota imap_quota imap_zlib
}
protocol pop3 {
   mail_max_userip_connections = 3
   mail_plugins = quota
   pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, 
bytes=%i/%o
   pop3_uidl_format = UID%u-%v
}
protocol lda {
   postmaster_address = postmaster at example.com
}


1 18:23:54 gw-ud3 dovecot: imap(xxxx at xxxx.com): Panic: file 
imap-client.c: line 849 (client_check_command_hangs): assertion failed: 
(!have_wait_unfinished || unfinished_count > 0)
Feb 11 18:23:54 gw-ud3 dovecot: imap(xxxx at xxxx.com): Error: Raw 
backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0x8096a) [0x7f996c47e96a] 
-> /usr/lib64/dovecot/libdovecot.so.0(+0x809d6) [0x7f996c47e9d6]$
Feb 11 18:23:55 gw-ud3 dovecot: imap(xxxx at xxxx.com): Fatal: master: 
service(imap): child 329519 killed with signal 6 (core dumped)

Here's the backtrace:

(gdb) bt full
#0  0x00007f046eb2e625 in raise (sig=<value optimized out>) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
         resultvar = 0
         pid = 98454
         selftid = 98454
#1  0x00007f046eb2fe05 in abort () at abort.c:92
         save_stage = 2
         act = {__sigaction_handler = {sa_handler = 0x2, sa_sigaction = 
0x2}, sa_mask = {__val = {139657018134932, 1, 18488448, 0, 
139657017886537, 139657017552035, 139657017530872, 206158430224, 
140725557583888,
               140725557583680, 4362456, 140725557583788, 18440536, 0, 
0, 6717455502603727992}}, sa_flags = 1635021663, sa_restorer = 
0x7ffd38dee060}
         sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007f046ef10a60 in default_fatal_finish (type=<value optimized 
out>, status=0) at failures.c:201
         backtrace = 0x1196158 
"/usr/lib64/dovecot/libdovecot.so.0(+0x80a6a) [0x7f046ef10a6a] -> 
/usr/lib64/dovecot/libdovecot.so.0(+0x80ad6) [0x7f046ef10ad6] -> 
/usr/lib64/dovecot/libdovecot.so.0(i_error+0) [0x7f046eeb994f] -> dove"...
#3  0x00007f046ef10ad6 in i_internal_fatal_handler (ctx=0x7ffd38dee080, 
format=<value optimized out>, args=<value optimized out>) at failures.c:670
         status = 0
#4  0x00007f046eeb994f in i_panic (format=0x18096 <Address 0x18096 out 
of bounds>) at failures.c:275
         ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, 
timestamp_usecs = 0}
         args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 
0x7ffd38dee160, reg_save_area = 0x7ffd38dee0a0}}
#5  0x0000000000418247 in client_continue_pending_input ()
No symbol table info available.
#6  0x00007f046ef22fdb in io_loop_call_io (io=0x11c5860) at ioloop.c:559
         ioloop = 0x119e740
         t_id = 2
         __FUNCTION__ = "io_loop_call_io"
#7  0x00007f046ef24577 in io_loop_handler_run_internal (ioloop=<value 
optimized out>) at ioloop-epoll.c:220
         ctx = 0x11a0250
         events = <value optimized out>
         event = 0x11a10c0
         list = 0x11a1c80
         io = <value optimized out>
         tv = {tv_sec = 29, tv_usec = 999480}
         events_count = <value optimized out>
         msecs = <value optimized out>
         ret = 1
         i = <value optimized out>
         call = <value optimized out>
---Type <return> to continue, or q <return> to quit---
         __FUNCTION__ = "io_loop_handler_run_internal"
#8  0x00007f046ef23085 in io_loop_handler_run (ioloop=0x119e740) at 
ioloop.c:607
No locals.
#9  0x00007f046ef23228 in io_loop_run (ioloop=0x119e740) at ioloop.c:583
         __FUNCTION__ = "io_loop_run"
#10 0x00007f046eebeca3 in master_service_run (service=0x119e5e0, 
callback=<value optimized out>) at master-service.c:640
No locals.
#11 0x0000000000424c5c in main ()
No symbol table info available.



More information about the dovecot mailing list