Fixed: http://hg.dovecot.org/dovecot-2.2/rev/1886e0616ab5
On 20 Oct 2014, at 01:26, Hans Morten Kind <Kind at adm.uib.no> wrote:
> I am getting some panics after upgrading from 2.2.13 to 2.2.14
>
> This panic happens for one user only, he is subscribed to 86 folders,
> on two of them this panic happens quite often - several times a day.
>
> The mbox folders seems OK, less than 30M with 30 and 200 messages.
>
> Panic: file mail-index-sync-update.c: line 250 (sync_expunge_range):
assertion failed: (count > 0)
>
> hmk
>
>
> GNU gdb 6.8
> Copyright (C) 2008 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 "i386-pc-solaris2.10"...
> Reading symbols from
/datapool/local/dovecot-2.2.14/lib/dovecot/libdovecot-storage.so.0...done.
> Loaded symbols for
/local/dovecot-2.2.14/lib/dovecot/libdovecot-storage.so.0
> Reading symbols from
/datapool/local/dovecot-2.2.14/lib/dovecot/libdovecot.so.0...done.
> Loaded symbols for /local/dovecot-2.2.14/lib/dovecot/libdovecot.so.0
> Reading symbols from /datapool/local/program/lib/libssl.so.1.0.0...done.
> Loaded symbols for /local/program/lib/libssl.so.1.0.0
> Reading symbols from /datapool/local/program/lib/libcrypto.so.1.0.0...done.
> Loaded symbols for /local/program/lib/libcrypto.so.1.0.0
> Reading symbols from /datapool/local/program/lib/libz.so...done.
> Loaded symbols for /local/program/lib/libz.so
> Reading symbols from /lib/libm.so.2...done.
> Loaded symbols for /lib/libm.so.2
> Reading symbols from /datapool/local/program/lib/libiconv.so.2...done.
> Loaded symbols for /local/program/lib/libiconv.so.2
> Reading symbols from /lib/librt.so.1...done.
> Loaded symbols for /lib/librt.so.1
> Reading symbols from /lib/libnsl.so.1...done.
> Loaded symbols for /lib/libnsl.so.1
> Reading symbols from /lib/libsocket.so.1...done.
> Loaded symbols for /lib/libsocket.so.1
> Reading symbols from /lib/libsendfile.so.1...done.
> Loaded symbols for /lib/libsendfile.so.1
> Reading symbols from /lib/libc.so.1...done.
> Loaded symbols for /lib/libc.so.1
> Reading symbols from /lib/libdl.so.1...done.
> Loaded symbols for /lib/libdl.so.1
> Reading symbols from /usr/lib/libz.so...done.
> Loaded symbols for /usr/lib/libz.so
> Reading symbols from /lib/libaio.so.1...done.
> Loaded symbols for /lib/libaio.so.1
> Reading symbols from /lib/libmd.so.1...done.
> Loaded symbols for /lib/libmd.so.1
> Reading symbols from /lib/ld.so.1...done.
> Loaded symbols for /lib/ld.so.1
> Core was generated by `dovecot/imap imap-postlogin'.
> Program terminated with signal 6, Aborted.
> [New process 76621 ]
> #0 0xfe7fc8e5 in _lwp_kill () from /lib/libc.so.1
> #0 0xfe7fc8e5 in _lwp_kill () from /lib/libc.so.1
> No symbol table info available.
> #1 0xfe7f7765 in thr_kill () from /lib/libc.so.1
> No symbol table info available.
> #2 0xfe7a376f in raise () from /lib/libc.so.1
> No symbol table info available.
> #3 0xfe7829e1 in abort () from /lib/libc.so.1
> No symbol table info available.
> #4 0xfeda13ba in default_fatal_finish (type=LOG_TYPE_PANIC, status=0) at
failures.c:152
> backtrace = 0x8093660 "0xfeda22d7 -> 0xfeda15d3 -> 0xfef31e5f
-> 0xfef32d65 -> 0xfef3349e -> 0xfef33b77 -> 0xfef1dcbd ->
0xfef170e4 -> 0xfef173a4 -> 0xfef1767d -> 0xfef03e09 -> 0xfeea5540
-> 0xfeea5714 -> 0xfeea5857 -> 0xfe"...
> #5 0xfeda22d7 in i_internal_fatal_handler (ctx=0x8047400,
> format=0xfef5ebc8 "file %s: line %d (%s): assertion failed:
(%s)", args=0x8047424 ".????")
> at failures.c:152
> status = 0
> #6 0xfeda15d3 in i_panic (format=0xfef5ebc8 "file %s: line %d (%s):
assertion failed: (%s)")
> at failures.c:152
> ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0,
timestamp_usecs = 0}
> args = 0x8047424 ".????"
> #7 0xfef31e5f in sync_expunge_range (ctx=0x8047600, seqs=0x80474d8) at
../../src/lib/array.h:197
> map = (struct mail_index_map *) 0x80c5d90
> range = (const struct seq_range *) 0x8093430
> i = 134509780
> count = 0
> dest_seq1 = 562
> prev_seq2 = 562
> orig_rec_count = 4277606968
> __FUNCTION__ = "sync_expunge_range"
> #8 0xfef32d65 in mail_index_sync_record_real (ctx=0x8047600,
hdr=0x80b5d28, data=0x80b5df8)
> at ../../src/lib/array.h:197
> rec = (const struct mail_transaction_expunge_guid *) 0x80b8968
> end = (const struct mail_transaction_expunge_guid *) 0x80b8968
> seqs = {arr = {buffer = 0x8093410, element_size = 8}, v = 0x8093410,
v_modifiable = 0x8093410}
> seq = 0
> modseq = 32612
> ret = 0
> __FUNCTION__ = "mail_index_sync_record_real"
> #9 0xfef3349e in mail_index_sync_record (ctx=0x8047600, hdr=0x80b5d28,
data=0x80b5df8)
> at ../../src/lib/array.h:197
> _data_stack_cur_id = 5
> ret = 1
> #10 0xfef33b77 in mail_index_sync_map (_map=0x80b5400,
type=MAIL_INDEX_SYNC_HANDLER_HEAD, force=true)
> at ../../src/lib/array.h:197
> map = (struct mail_index_map *) 0x0
> index = (struct mail_index *) 0x80b53b0
> view = (struct mail_index_view *) 0x80ab8b0
> sync_map_ctx = {view = 0x80ab8b0, modseq_ctx = 0x809ca50, cur_ext_map_idx
= 0,
> ext_intro_seq = 5, ext_intro_offset = 52, ext_intro_end_offset = 84,
expunge_handlers = {arr = {
> buffer = 0x0, element_size = 0}, v = 0x0, v_modifiable = 0x0},
extra_contexts = {arr = {
> buffer = 0x809c348, element_size = 4}, v = 0x809c348, v_modifiable =
0x809c348},
> unknown_extensions = 0x0, type = MAIL_INDEX_SYNC_HANDLER_HEAD,
sync_handlers_initialized = 0,
> expunge_handlers_set = 0, expunge_handlers_used = 0, cur_ext_ignore = 0,
internal_update = 0,
> errors = 0}
> thdr = (const struct mail_transaction_header *) 0x80b5d28
> tdata = (const void *) 0x80b5df8
> prev_seq = 5
> start_offset = 0
> prev_offset = 144
> ret = 1
> had_dirty = false
> reset = true
> __FUNCTION__ = "mail_index_sync_map"
> #11 0xfef1dcbd in mail_index_map (index=0x80b53b0,
type=MAIL_INDEX_SYNC_HANDLER_HEAD)
> at mail-index-map-read.c:35
> ret = 1
> __FUNCTION__ = "mail_index_map"
> #12 0xfef170e4 in mail_index_try_open (index=0x80b53b0) at
../../src/lib/array.h:197
> ret = 134919688
> __FUNCTION__ = "mail_index_try_open"
> #13 0xfef173a4 in mail_index_open_files (index=0x80b53b0, flags=21) at
../../src/lib/array.h:197
> ret = 1
> #14 0xfef1767d in mail_index_open (index=0x80b53b0, flags=21) at
../../src/lib/array.h:197
> ret = 134960048
> __FUNCTION__ = "mail_index_open"
> #15 0xfef03e09 in index_storage_mailbox_open (box=0x80b47c8,
move_to_memory=false) at index-storage.c:39
> ibox = (struct index_mailbox_context *) 0x80b4a80
> index_flags = 21
> ret = 0
> __FUNCTION__ = "index_storage_mailbox_open"
> #16 0xfeea5540 in mbox_mailbox_open_finish (mbox=0x80b47c8,
move_to_memory=false) at mbox-storage.c:77
> No locals.
> #17 0xfeea5714 in mbox_mailbox_open_existing (mbox=0x80b47c8) at
mbox-storage.c:77
> box = (struct mailbox *) 0x80b47c8
> rootdir = 0xfeea581f
"\215\225`???\211T$\004\211\004$?\023???\211E?\203}?"
> box_path = 0x80b4b78 "/Home/USER/mail/pro/triad"
> move_to_memory = false
> #18 0xfeea5857 in mbox_mailbox_open (box=0x80b47c8) at mbox-storage.c:77
> mbox = (struct mbox_mailbox *) 0x80b47c8
> st = {st_dev = 82051096, st_pad1 = {0, 0, 0}, st_ino = 4141941, st_mode =
33152, st_nlink = 1,
> st_uid = 32440, st_gid = 4601, st_rdev = 0, st_pad2 = {0, 0}, st_size =
16826589, st_atim = {
> tv_sec = 1411034237, tv_nsec = 0}, st_mtim = {tv_sec = 1413152136,
tv_nsec = 0}, st_ctim = {
> tv_sec = 1413659956, tv_nsec = 975959000}, st_blksize = 8192, st_blocks
= 33016,
> st_fstype = "nfs", '\0' <repeats 12 times>,
st_pad4 = {0, 0, 0, 0, 0, 0, 0, 0}}
> ret = 0
> #19 0xfeec94cc in mailbox_open_full (box=0x80b47c8, input=0x0) at
../../src/lib/array.h:197
> _data_stack_cur_id = 4
> ret = 143
> #20 0xfeec9807 in mailbox_open (box=0x80b47c8) at ../../src/lib/array.h:197
> No locals.
> #21 0xfef024ec in index_storage_get_status (box=0x80b47c8, items=23,
status_r=0x8047a04)
> at index-status.c:23
> No locals.
> #22 0xfeeca8ac in mailbox_get_status (box=0x80b47c8, items=23,
status_r=0x8047a04)
> at ../../src/lib/array.h:197
> __FUNCTION__ = "mailbox_get_status"
> #23 0x08073ddb in imap_status_get (cmd=0x80b1fb8, ns=0x80ab1b0,
mailbox=0x8093318 "pro/triad",
> items=0x8047a70, result_r=0x8047a04) at imap-status.c:23
> client = (struct client *) 0x80b17b0
> box = (struct mailbox *) 0x80b47c8
> errstr = 0x8064d84 "\205?u\034\213\205h????D$\004\005"
> ret = 0
> #24 0x08064e65 in cmd_status (cmd=0x80b1fb8) at cmd-status.c:23
> client = (struct client *) 0x80b17b0
> args = (const struct imap_arg *) 0x80ab240
> list_args = (const struct imap_arg *) 0x80ab328
> items = {status = 23, metadata = 0}
> result = {status = {messages = 0, recent = 0, unseen = 0, uidvalidity = 0,
uidnext = 0,
> first_unseen_seq = 0, first_recent_uid = 0, last_cached_seq = 0,
highest_modseq = 0,
> highest_pvt_modseq = 0, keywords = 0x0, permanent_flags = 0,
permanent_keywords = 0,
> allow_new_keywords = 0, nonpermanent_modseqs = 0, no_modseq_tracking =
0, have_guids = 1,
> have_save_guids = 0, have_only_guid128 = 0}, metadata = {
> guid =
"\000\000\000\000\001\000\000\000\r\000\000\000\033\000\000",
virtual_size = 2199023255593,
> cache_fields = 0xfe7a67f2, precache_fields = 134861792,
backend_ns_prefix = 0x80921a8 "0(\t\b\030",
> backend_ns_type = 134511236}, error = 134654712, errstr = 0x80b2038
"STATUS"}
> ns = (struct mail_namespace *) 0x80ab1b0
> mailbox = 0x8093318 "pro/triad"
> orig_mailbox = 0x80ab2f8 "pro/triad"
> selected_mailbox = false
> #25 0x0806aa61 in command_exec (cmd=0x80b1fb8) at imap-commands.c:101
> hook = (const struct command_hook *) 0x809bfd8
> ret = 8
> #26 0x080699d2 in client_command_input (cmd=0x80b1fb8) at imap-client.c:130
> client = (struct client *) 0x80b17b0
> command = (struct command *) 0x3
> __FUNCTION__ = "client_command_input"
> #27 0x08069cb7 in client_command_input (cmd=0x80b1fb8) at imap-client.c:130
> client = (struct client *) 0x80b17b0
> command = (struct command *) 0x809d3d4
> __FUNCTION__ = "client_command_input"
> #28 0x08069dba in client_handle_next_command (client=0x80b17b0,
remove_io_r=0x8047b9d)
> at imap-client.c:130
> No locals.
> #29 0x08069e57 in client_handle_input (client=0x80b17b0) at
imap-client.c:130
> _data_stack_cur_id = 3
> ret = 10
> remove_io = false
> handled_commands = false
> __FUNCTION__ = "client_handle_input"
> #30 0x08069fe0 in client_input (client=0x80b17b0) at imap-client.c:130
> cmd = (struct client_command_context *) 0x80aa9a4
> output = (struct ostream *) 0x80abe08
> bytes = 55
> __FUNCTION__ = "client_input"
> #31 0xfedba96d in io_loop_call_io (io=0x80abe70) at ioloop.c:28
> ioloop = (struct ioloop *) 0x809bf20
> t_id = 2
> __FUNCTION__ = "io_loop_call_io"
> #32 0xfedbc0cc in io_loop_handler_run_internal (ioloop=0x809bf20) at
ioloop-poll.c:96
> ctx = (struct ioloop_handler_context *) 0x809ca10
> pollfd = (struct pollfd *) 0x809e0a8
> tv = {tv_sec = 1799, tv_usec = 999672}
> io = (struct io_file *) 0x80abe70
> msecs = 1800000
> ret = 0
> call = true
> #33 0xfedbab06 in io_loop_handler_run (ioloop=0x809bf20) at ioloop.c:28
> No locals.
> #34 0xfedbaa5d in io_loop_run (ioloop=0x809bf20) at ioloop.c:28
> __FUNCTION__ = "io_loop_run"
> #35 0xfed41db1 in master_service_run (service=0x809be68, callback=0x80771da
<client_connected>)
> at master-service.c:75
> No locals.
> #36 0x08077577 in main (argc=2, argv=0x809bc78) at main.c:72
> set_roots = {0x8092fe0, 0x0}
> login_set = {auth_socket_path = 0x80930e8 "",
postlogin_socket_path = 0x8093120 "",
> postlogin_timeout_secs = 60, callback = 0x8076f4e
<login_client_connected>,
> failure_callback = 0x807715d <login_client_failed>,
request_auth_token = 1}
> service_flags = MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN
> storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT
> username = 0x0
> c = -1