[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