I’m seeing core dumps from Dovecot’s imap process (around 1/day currently) from
client_check_command_hangs().
Dovecot 2.2.24
OS: Solaris 10
CPU: x86
Filesystem: Local ZFS
Most crashes are associated with one user (with 25GB of mail in his mailboxes)
but some (two) are also associated with other user with “just” 10GB mail.
Please find enclosed various log files/traces. Let me know if there is
something else I might be able to provide that might give more insight into
this.
The output is from one of the “25GB”-user crashes. He is able to access mail
normally most of the time though so the client recovers and he hasn’t reported
this issue to us.
—
[Lı.U] SysAdmin KITVS-IFM & ITI-NET IT.LiU.SE +46-13-28 2786
-rw------- 1 root root 14975384 Jun 3 05:48 imap.22286.730
-rw------- 1 root root 28258768 Jun 2 21:37 imap.2840.730
-rw------- 1 root root 19853720 Jun 2 05:45 imap.17852.730
-rw------- 1 root root 14061984 Jun 2 00:08 imap.22468.1248
-rw------- 1 root root 19440024 Jun 1 12:13 imap.19658.730
-rw------- 1 root root 11850088 May 28 19:53 imap.4417.1248
-rw------- 1 root root 19722648 May 28 13:45 imap.4085.730
-rw------- 1 root root 20713880 May 28 09:38 imap.5978.730
-rw------- 1 root root 40432080 May 27 17:03 imap.14468.730
-rw------- 1 root root 15008152 May 26 08:18 imap.14592.730
-rw------- 1 root root 35308096 May 25 20:20 imap.11696.730
(dbx) where
[1] __lwp_kill(0x1, 0x6, 0xfffffe88d2d96ac0, 0xfffffd7ffeb827be, 0x4b, 0x0),
at 0xfffffd7ffeb81eca
[2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeb7a7d3
[3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeb26fe9
[4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeb05f60
=>[5] default_fatal_finish(type = LOG_TYPE_PANIC, status = 0), line 201 in
"failures.c"
[6] i_internal_fatal_handler(ctx = 0xfffffd7fffdff9e8, format = 0x491710
"file %s: line %d: assertion failed: (%s)", args = 0xfffffd7fffdff9d0), line
670 in "failures.c"
[7] i_panic(format = 0x491710 "file %s: line %d: assertion failed: (%s)", ...
= 0x45d783, ...), line 275 in "failures.c"
[8] client_check_command_hangs(client = 0x4d1650), line 828 in "imap-client.c"
[9] client_continue_pending_input(client = 0x4d1650), line 897 in
"imap-client.c"
[10] client_output(client = 0x4d1650), line 1213 in "imap-client.c"
[11] stream_send_io(fstream = 0x4c9460), line 482 in "ostream-file.c"
[12] io_loop_call_io(io = 0x5c64d0), line 564 in "ioloop.c"
[13] io_loop_handler_run_internal(ioloop = 0x4b3d20), line 211 in
"ioloop-poll.c"
[14] io_loop_handler_run(ioloop = 0x4b3d20), line 612 in "ioloop.c"
[15] io_loop_run(ioloop = 0x4b3d20), line 588 in "ioloop.c"
[16] master_service_run(service = 0x4b23e0, callback = 0x482590 =
&`imap`main.c`client_connected(struct master_service_connection *conn)), line
640 in "master-service.c"
[17] main(argc = 1, argv = 0xfffffd7fffdffcb8), line 460 in "main.c"
(dbx) frame 8
Current function is client_check_command_hangs
828 i_assert(client->io != NULL);
(dbx) print *client
*client = {
prev = (nil)
next = (nil)
v = {
state_export = 0x4795a0 = &imap_state_export_base()
state_import = 0x47b880 = &imap_state_import_base()
destroy = 0x45ba50 =
&`imap`imap-client.c`client_default_destroy(struct client *client, const char
*reason)
}
session_id = 0x4d17f8 "M0DilFc04spQ2Cr8"
userdb_fields = 0x4d1a20
fd_in = 7
fd_out = 7
io = (nil)
input = 0x4c9320
output = 0x4c94f0
to_idle = 0x4c95a0
to_idle_output = 0x54c470
to_delayed_input = (nil)
pool = 0x4d1630
service_user = 0x4be1c0
set = 0x4bee38
lda_set = 0x4beec8
capability_string = 0x4d1870
user = 0x4c9f10
mailbox = 0x4d4680
keywords = {
names = 0x506118
announce_count = 10U
}
sync_counter = 131U
messages_count = 1989U
recent_count = 2U
uidvalidity = 1183546861U
enabled_features = MAILBOX_FEATURE_CONDSTORE
last_input = 1464925732
last_output = 1464925732
bad_counter = 0
free_parser = (nil)
command_pool = 0x4d1e40
command_queue = 0x5c7620
command_queue_size = 3U
sync_last_full_modseq = 642109U
highest_fetch_modseq = 642130U
fetch_hdr_count = 2195U
fetch_body_count = 854U
fetch_hdr_bytes = 1673864U
fetch_body_bytes = 46240644U
deleted_count = 0
expunged_count = 0
trashed_count = 0
search_saved_uidset = {
arr = {
buffer = (nil)
element_size = 0
}
v = (nil)
v_modifiable = (nil)
}
search_updates = {
arr = {
buffer = (nil)
element_size = 0
}
v = (nil)
v_modifiable = (nil)
}
notify_ctx = (nil)
notify_uidnext = 214266U
input_lock = 0x5c7620
output_cmd_lock = 0x5c6db0
mailbox_change_lock = (nil)
urlauth_ctx = (nil)
module_contexts = {
arr = {
buffer = 0x4d1810
element_size = 8U
}
v = 0x4d1810
v_modifiable = 0x4d1810
}
sync_seen_deletes = 0
disconnected = 0
destroyed = 0
handling_input = 0
syncing = 0
id_logged = 1U
mailbox_examined = 0
anvil_sent = 1U
tls_compression = 0
input_skip_line = 1U
modseqs_sent_since_sync = 0
notify_immediate_expunges = 0
notify_count_changes = 1U
notify_flag_changes = 1U
imap_metadata_enabled = 0
nonpermanent_modseqs = 0
state_import_bad_idle_done = 0
state_import_idle_continue = 0
}
(dbx)
# 2.2.24 (a82c823): /ifm/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.14 (099a97c)
# OS: SunOS 5.10 i86pc
auth_debug = yes
auth_gssapi_hostname = mail.ifm.liu.se
auth_krb5_keytab = /ifm/etc/dovecot/krb5.keytab
auth_mechanisms = plain login gssapi gss-spnego
auth_verbose = yes
auth_worker_max_count = 100
base_dir = /var/run/dovecot/
default_process_limit = 2048
default_vsz_limit = 1 G
first_valid_uid = 100
login_greeting = Welcome to the IFM Dovecot Mail Server.
login_plaintext_networks = 130.236.160.0/20
mail_location = maildir:Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy
include variables body enotify environment mailbox date index ihave duplicate
mime foreverypart extracttext
namespace {
inbox = yes
location =
prefix =
separator = /
type = private
}
namespace {
hidden = yes
list = no
location =
prefix = mail/
separator = /
type = private
}
namespace {
hidden = yes
list = no
location =
prefix = Mail/
separator = /
type = private
}
namespace {
hidden = yes
list = no
location =
prefix = ~/mail/
separator = /
type = private
}
namespace {
hidden = yes
list = no
location =
prefix = ~/Mail/
separator = /
type = private
}
namespace {
hidden = yes
list = no
location =
prefix = ~%u/mail/
separator = /
type = private
}
namespace {
hidden = yes
list = no
location =
prefix = ~%u/Mail/
separator = /
type = private
}
passdb {
driver = pam
}
plugin {
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
protocols = imap lmtp
service anvil {
client_limit = 8192
}
service auth {
client_limit = 10240
}
service imap {
process_limit = 2048
}
ssl_cert = </ifm/etc/certs/dovecot.cert.pem
ssl_key = </ifm/etc/certs/dovecot.key.pem
ssl_protocols = !SSLv2 !SSLv3
userdb {
driver = passwd
}
protocol imap {
mail_max_userip_connections = 64
}
core 'imap.22286.730' of 22286: dovecot/imap
fffffd7ffeb81eca _lwp_kill () + a
fffffd7ffeb26fe9 raise () + 19
fffffd7ffeb05f60 abort () + 90
fffffd7ffed92d4f default_fatal_finish () + bf
fffffd7ffed948be i_internal_fatal_handler () + 5e
fffffd7ffed93134 i_panic () + f4
000000000045d783 client_check_command_hangs () + 93
000000000045daf5 client_continue_pending_input () + 105
000000000045ec0e client_output () + 17e
fffffd7ffede6d1b stream_send_io () + 8b
fffffd7ffedc6628 io_loop_call_io () + e8
fffffd7ffedc99e6 io_loop_handler_run_internal () + 2f6
fffffd7ffedc68b8 io_loop_handler_run () + 28
fffffd7ffedc679b io_loop_run () + fb
fffffd7ffecb6261 master_service_run () + 31
0000000000482af7 main () + 4a7
000000000042834b ???????? ()