2.2.14 Panic in sync_expunge_range()

Hans Morten Kind Kind at adm.uib.no
Mon Oct 20 08:26:48 UTC 2014


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




More information about the dovecot mailing list