2.2.21 imap core dump after enabling autoexpunge

Timo Sirainen tss at iki.fi
Mon Jan 4 19:36:22 UTC 2016


On 24 Dec 2015, at 01:48, Tomi Vainio <tomi.vainio at iki.fi> wrote:
> 
> Hi,
> 
> Here is a proper stack trace without disabling too much information.

Fixed: https://github.com/dovecot/core/commit/ddffbb277e212adb9d594b3d7d1e1d39fa78f7c6

> 
>  Tomppa
> 
>> program terminated by signal SEGV (no mapping at the fault address)
>> Current function is o_stream_get_buffer_used_size
>>  198           const struct ostream_private *_stream = stream->real_stream;
>> (dbx) where
>> =>[1] o_stream_get_buffer_used_size(stream = (nil)), line 198 in "ostream.c"
>>  [2] notify_ok(mailbox = 0xa8300, text = 0x9bed0 "Stale mailbox lock file detected, will override in 0 seconds", context = 0xbb700), line 13 in "mail-storage-callbacks.c"
>>  [3] index_storage_lock_notify(box = 0xa8300, notify_type = MAILBOX_LOCK_NOTIFY_MAILBOX_OVERRIDE, secs_left = 0), line 138 in "index-storage.c"
>>  [4] dotlock_callback(secs_left = 0, stale = 1U, context = 0xa8300), line 253 in "maildir-uidlist.c"
>>  [5] dotlock_create(dotlock = 0xa9f08, flags = DOTLOCK_CREATE_FLAG_NONBLOCK, write_pid = 1U, lock_path_r = 0xffbff168), line 550 in "file-dotlock.c"
>>  [6] file_dotlock_create_real(dotlock = 0xa9f08, flags = DOTLOCK_CREATE_FLAG_NONBLOCK), line 629 in "file-dotlock.c"
>>  [7] file_dotlock_create(set = 0xdada4, path = 0xa7b08 "/tmp/testuser/Maildir/.Junk/dovecot-uidlist", flags = DOTLOCK_CREATE_FLAG_NONBLOCK, dotlock_r = 0xdadc0), line 673 in "file-dotlock.c"
>>  [8] maildir_uidlist_lock_timeout(uidlist = 0xdad78, nonblock = 1U, refresh = 1U, refresh_when_locked = 1U), line 161 in "maildir-uidlist.c"
>>  [9] maildir_uidlist_sync_lock(uidlist = 0xdad78, sync_flags = <unknown enum member 12>, locked_r = 0xffbff347), line 1608 in "maildir-uidlist.c"
>>  [10] maildir_uidlist_sync_init(uidlist = 0xdad78, sync_flags = <unknown enum member 12>, sync_ctx_r = 0x9bd18), line 1638 in "maildir-uidlist.c"
>>  [11] maildir_sync_context(ctx = 0x9bd00, forced = 1U, find_uid = 0xffbff508, lost_files_r = 0xffbff4bb), line 872 in "maildir-sync.c"
>>  [12] maildir_sync_run(mbox = 0xa8300, flags = MAILBOX_SYNC_FLAG_FAST, force_resync = 1U, uid = 0xffbff508, lost_files_r = 0xffbff4bb), line 1023 in "maildir-sync.c"
>>  [13] maildir_storage_sync_force(mbox = 0xa8300, uid = 27173U), line 1046 in "maildir-sync.c"
>>  [14] maildir_file_do(mbox = 0xa8300, uid = 27173U, callback = 0xff1c5378 = &`libdovecot-storage.so.0.0.0`maildir-mail.c`do_stat(struct maildir_mailbox *mbox, const char *path, struct stat *st), context = 0xffbff618), line 154 in "maildir-util.c"
>>  [15] maildir_mail_stat(mail = 0xd6898, st_r = 0xffbff618), line 135 in "maildir-mail.c"
>>  [16] maildir_mail_get_save_date(_mail = 0xd6898, date_r = 0xffbff794), line 178 in "maildir-mail.c"
>>  [17] mail_get_save_date(mail = 0xd6898, date_r = 0xffbff794), line 153 in "mail.c"
>>  [18] mailbox_autoexpunge(box = 0xa8300, expire_time = 1448242276), line 43 in "mail-autoexpunge.c"
>>  [19] mail_namespace_autoexpunge(ns = 0xb4408), line 76 in "mail-autoexpunge.c"
>>  [20] mail_user_autoexpunge(user = 0xb5f98), line 91 in "mail-autoexpunge.c"
>>  [21] mail_user_unref(_user = 0xbb74c), line 167 in "mail-user.c"
>>  [22] client_default_destroy(client = 0xbb700, reason = (nil)), line 390 in "imap-client.c"
>>  [23] client_destroy(client = 0xbb700, reason = (nil)), line 263 in "imap-client.c"
>>  [24] client_input(client = 0xbb700), line 1121 in "imap-client.c"
>>  [25] io_loop_call_io(io = 0xb4b90), line 559 in "ioloop.c"
>>  [26] io_loop_handler_run_internal(ioloop = 0xa4830), line 211 in "ioloop-poll.c"
>>  [27] io_loop_handler_run(ioloop = 0xa4830), line 607 in "ioloop.c"
>>  [28] io_loop_run(ioloop = 0xa4830), line 583 in "ioloop.c"
>>  [29] master_service_run(service = 0xa4780, callback = 0x75e00 = &`imap`main.c`client_connected(struct master_service_connection *conn)), line 640 in "master-service.c"
>>  [30] main(argc = 1, argv = 0xffbffd74), line 442 in "main.c"
> 
> 
> On 23.12.2015 11.10, Tomi Vainio wrote:
>> Hi,
>> 
>> I've enabled autoexpunge for Trash and Junk.  Now imap process core
>> dumps occasionally.
>> 
>>  Tomppa
>> 
>>> program terminated by signal SEGV (no mapping at the fault address)
>>> 0xff0dc2e0: o_stream_get_buffer_used_size       :       ld       [%o0
>>> + 20], %o0
>>> Current function is notify_ok (optimized)
>>>   13           if (o_stream_get_buffer_used_size(client->output) != 0)
>>> (dbx) where
>>>  [1] o_stream_get_buffer_used_size(0x0, 0x83ee8, 0x83ee8, 0x5f520,
>>> 0xfffe681c, 0xff13a978), at 0xff0dc2e0
>>> =>[2] notify_ok(mailbox = 0x90188, text = 0x83ee8 "Stale mailbox lock
>>> file detected, will override in 0 seconds", context = 0xa3588)
>>> (optimized), at 0x5f524 (line ~13) in "mail-storage-callbacks.c"
>>>  [3] dotlock_callback(0x0, 0x1, 0x90188, 0x567a61fe, 0xff1352a0,
>>> 0x2), at 0xff1ff478
>>>  [4] dotlock_create(0xcc3d8, 0x2dc6c0, 0x1, 0x0, 0x0, 0x567a61fe), at
>>> 0xff0b0e68
>>>  [5] file_dotlock_create_real(0xcc3d8, 0x1, 0x541c, 0x4, 0xff1352a0,
>>> 0xff13a6bc), at 0xff0b1104
>>>  [6] file_dotlock_create(0xbf674, 0x8f990, 0x1, 0xbf690, 0x5,
>>> 0xcc3d8), at 0xff0b126c
>>>  [7] maildir_uidlist_lock_timeout(0xbf648, 0x1, 0x1, 0x1, 0x3f,
>>> 0x26c00), at 0xff1ff0ec
>>>  [8] maildir_uidlist_sync_lock(0xbf648, 0x8, 0xffbff59f, 0x1, 0x1,
>>> 0xf19c8), at 0xff2035bc
>>>  [9] maildir_uidlist_sync_init(0xbf648, 0x8, 0x83d20, 0x1, 0x44,
>>> 0xff2f502c), at 0xff203680
>>>  [10] maildir_sync_context(0x83d08, 0x1, 0x0, 0xffbff707, 0x83d20,
>>> 0x83d08), at 0xff1fe290
>>>  [11] maildir_sync_run(0x90188, 0x44, 0x0, 0x0, 0x0, 0x90420), at
>>> 0xff1fe74c
>>>  [12] maildir_storage_sync_init(0x90188, 0x44, 0x541c, 0x0, 0x80,
>>> 0xff2f502c), at 0xff1feaa0
>>>  [13] mailbox_sync(0x90188, 0x44, 0x0, 0x4, 0x44, 0x90388), at
>>> 0xff1b91cc
>>>  [14] index_mailbox_get_metadata(0x90188, 0x40, 0xffbff910, 0x0,
>>> 0xff2f502c, 0x0), at 0xff273858
>>>  [15] maildir_mailbox_get_metadata(0x90188, 0x40, 0xffbff910,
>>> 0xfffffff8, 0x0, 0xff2f502c), at 0xff1f9e4c
>>>  [16] mailbox_get_metadata(0x90188, 0x40, 0xffbff910, 0x0,
>>> 0xff2f502c, 0x2), at 0xff1b8ecc
>>>  [17] mailbox_autoexpunge(0x90188, 0x5651837e, 0xa1e28, 0xa2630, 0x0,
>>> 0x0), at 0xff1a6fcc
>>>  [18] mail_user_autoexpunge(0x9eaf4, 0x8, 0x5651837e, 0xff2f502c,
>>> 0x9c290, 0xffbff9ac), at 0xff1a72e8
>>>  [19] mail_user_unref(0x9de20, 0xfffd135c, 0xff2f502c, 0x1,
>>> 0xff2c6388, 0xa35d4), at 0xff1c328c
>>>  [20] client_default_destroy(client = 0xa3588, reason = <value
>>> unavailable>) (optimized), at 0x41c8c (line ~390) in "imap-client.c"
>>>  [21] io_loop_call_io(0x9ca18, 0xfffdbba8, 0x0, 0xff1352a0, 0x8c6b8,
>>> 0x24400), at 0xff0c8fd4
>>>  [22] io_loop_handler_run_internal(0x8c6b8, 0x1, 0x0, 0x8d1b8, 0x1,
>>> 0x9ca18), at 0xff0cadd8
>>>  [23] io_loop_run(0x8c6b8, 0x1, 0xc0, 0xff13b26c, 0xff1352a0,
>>> 0x8d1b8), at 0xff0c90fc
>>>  [24] master_service_run(0x8c608, 0x60fe0, 0x1, 0x80, 0x27c00, 0x2),
>>> at 0xff0236c8
>>>  [25] main(argc = <value unavailable>, argv = 0x1) (optimized), at
>>> 0x619c4 (line ~442) in "main.c"
>>> (dbx)
>> 
>>> # 2.2.21 (5345f22): /usr/local/etc/dovecot/dovecot.conf
>>> # OS: SunOS 5.10 sun4u
>>> base_dir = /var/run/dovecot/
>>> dsync_remote_cmd = ssh -l%{login} %{host} /usr/local/bin/doveadm
>>> dsync-server -u%u -U
>>> first_valid_uid = 100
>>> last_valid_uid = 199
>>> mail_location = maildir:~/Maildir
>>> mail_plugins = fts fts_solr
>>> namespace inbox {
>>>  inbox = yes
>>>  location =
>>>  mailbox "Deleted Messages" {
>>>    special_use = \Trash
>>>  }
>>>  mailbox Drafts {
>>>    special_use = \Drafts
>>>  }
>>>  mailbox Junk {
>>>    auto = create
>>>    autoexpunge = 31 days
>>>    special_use = \Junk
>>>  }
>>>  mailbox Sent {
>>>    auto = subscribe
>>>    special_use = \Sent
>>>  }
>>>  mailbox "Sent Messages" {
>>>    special_use = \Sent
>>>  }
>>>  mailbox Spam {
>>>    special_use = \Junk
>>>  }
>>>  mailbox Trash {
>>>    autoexpunge = 31 days
>>>    special_use = \Trash
>>>  }
>>>  prefix =
>>> }
>>> passdb {
>>>  driver = pam
>>> }
>>> plugin {
>>>  fts = solr
>>>  fts_autoindex = yes
>>>  fts_solr = url=http://127.0.0.1:8983/solr/ break-imap-search
>>> }
>>> protocols = imap
>>> service auth {
>>>  user = root
>>> }
>>> service imap-login {
>>>  inet_listener imap {
>>>    address = localhost
>>>    port = 143
>>>  }
>>>  inet_listener imaps {
>>>    address = *
>>>    port = 993
>>>  }
>>> }
>>> ssl_cert = </etc/mail/certs/server-all.crt
>>> ssl_cipher_list = AES128+EECDH:AES128+EDH
>>> ssl_dh_parameters_length = 2048
>>> ssl_key = </etc/mail/certs/server.key
>>> ssl_prefer_server_ciphers = yes
>>> ssl_protocols = !SSLv2 !SSLv3
>>> userdb {
>>>  driver = passwd
>>> }
>> 



More information about the dovecot mailing list