Panic on service(imap) during FETCH/APPEND some messages

Alessio Cecchi alessio at skye.it
Wed Jun 2 20:21:58 EEST 2021


Hi,

I have captured a first core dump:


Jun 02 19:02:37 Panic: imap(user3 at email.com) session=<w9aiAcvDmtIlnx0R>: 
file index-mail-headers.c: line 198 (index_mail_parse_header_init): 
assertion failed: (!mail->data.header_parser_initialized)
Jun 02 19:02:37 Error: imap(user3 at email.com) session=<w9aiAcvDmtIlnx0R>: 
Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) 
[0x7f8a36238ac2] -> 
/usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f8a36238bce] 
-> /usr/lib64/dovecot/libdovecot.so.0(+0xf3cde) [0x7f8a36245cde] -> 
/usr/lib64/dovecot/libdovecot.so.0(+0xf3d81) [0x7f8a36245d81] -> 
/usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f8a3619725a] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_header_init+0x3b9) 
[0x7f8a365c6dc9] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_headers_internal+0x2b) 
[0x7f8a365c77eb] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_init_stream+0x19f) 
[0x7f8a365cab9f] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x77428) 
[0x7f8a36580428] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_get_stream_because+0x64) 
[0x7f8a365485a4] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x77207) 
[0x7f8a36580207] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_get_virtual_size+0x38) 
[0x7f8a36548158] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(maildir_save_finish+0x154) 
[0x7f8a36581504] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_save_cancel+0x3e) 
[0x7f8a3655739e] -> dovecot/imap [user3 at email.com 45.7629.17 
APPEND](+0xf5d2) [0x561344cb55d2] -> dovecot/imap [user3 at email.com 
45.7629.17 APPEND](+0x10918) [0x561344cb6918] -> dovecot/imap 
[user3 at email.com 45.7629.17 APPEND](command_exec+0x64) [0x561344cc5614] 
-> dovecot/imap [user3 at email.com 45.7629.17 
APPEND](client_command_cancel+0x49) [0x561344cc2dc9] -> dovecot/imap 
[user3 at email.com 45.7629.17 APPEND](+0x1cef4) [0x561344cc2ef4] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_handle_timeouts+0x12b) 
[0x7f8a3625dd3b] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xcc) 
[0x7f8a3625f89c] -> 
/usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x59) 
[0x7f8a3625e049] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) 
[0x7f8a3625e288] -> 
/usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) 
[0x7f8a361c8bb3] -> dovecot/imap [user3 at email.com 45.7629.17 
APPEND](main+0x342) [0x561344cb5202] -> 
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7f8a35da6555] -> 
dovecot/imap [user3 at email.com 45.7629.17 APPEND](+0xf405) [0x561344cb5405]
Jun 02 19:02:37 Fatal: imap(user3 at email.com) session=<w9aiAcvDmtIlnx0R>: 
master: service(imap): child 31649 killed with signal 6 (core dumped)


[root at popimap ~]# gdb /usr/libexec/dovecot/imap /var/core/core.imap.31649
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
Copyright (C) 2013 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 "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/libexec/dovecot/imap...Reading symbols from 
/usr/lib/debug/usr/libexec/dovecot/imap.debug...done.
done.
[New LWP 31649]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `dovecot/imap [user3 at cs-ins'.
Program terminated with signal 6, Aborted.
#0  0x00007f8a35dba387 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install 
bzip2-libs-1.0.6-13.el7.x86_64 expat-2.1.0-12.el7.x86_64 
glibc-2.17-324.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 
libzstd-1.4.9-1.el7.x86_64 xz-libs-5.2.2-1.el7.x86_64 
zlib-1.2.7-19.el7_9.x86_64
(gdb) bt full
#0  0x00007f8a35dba387 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007f8a35dbba78 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007f8a36245c97 in default_fatal_finish (status=0, 
type=<optimized out>) at failures.c:459
         backtrace = 0x5613451213d0 
"/usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) 
[0x7f8a36238ac2] -> 
/usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f8a36238bce] 
-> /usr/lib64/dovecot/libdovecot.so.0(+0xf3cde) [0"...
         recursed = 0
#3  fatal_handler_real (ctx=<optimized out>, format=<optimized out>, 
args=<optimized out>) at failures.c:471
         status = 0
#4  0x00007f8a36245d81 in i_internal_fatal_handler (ctx=<optimized out>, 
format=<optimized out>, args=<optimized out>)
     at failures.c:866
No locals.
#5  0x00007f8a3619725a in i_panic (format=format at entry=0x7f8a3660dd20 
"file %s: line %d (%s): assertion failed: (%s)")
     at failures.c:523
         ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, 
timestamp_usecs = 0, log_prefix = 0x0,
           log_prefix_type_pos = 0}
         args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 
0x7ffd6e029ce0, reg_save_area = 0x7ffd6e029c20}}
#6  0x00007f8a365c6dc9 in index_mail_parse_header_init 
(mail=mail at entry=0x56134519fc58, headers=headers at entry=0x0)
     at index-mail-headers.c:198
         data = 0x56134519fde8
         match = <optimized out>
         i = <optimized out>
         field_idx = <optimized out>
         match_count = <optimized out>
         __func__ = "index_mail_parse_header_init"
#7  0x00007f8a365c77eb in index_mail_parse_headers_internal 
(mail=mail at entry=0x56134519fc58, headers=headers at entry=0x0)
     at index-mail-headers.c:448
         data = 0x56134519fde8
         __func__ = "index_mail_parse_headers_internal"
#8  0x00007f8a365cab9f in index_mail_init_stream 
(mail=mail at entry=0x56134519fc58, hdr_size=hdr_size at entry=0x7ffd6e029e90,
     body_size=body_size at entry=0x7ffd6e029eb0, 
stream_r=stream_r at entry=0x7ffd6e029e88) at index-mail.c:1352
         _mail = 0x56134519fc58
         data = 0x56134519fde8
         input = <optimized out>
         has_nuls = false
         body_size_from_stream = false
         ret = <optimized out>
         want_attachment_kw = true
#9  0x00007f8a36580428 in maildir_mail_get_stream (_mail=0x56134519fc58, 
get_body=<optimized out>, hdr_size=0x7ffd6e029e90,
     body_size=0x7ffd6e029eb0, stream_r=0x7ffd6e029e88) at 
maildir-mail.c:622
         mail = 0x56134519fc58
---Type <return> to continue, or q <return> to quit---
         mbox = <optimized out>
         data = 0x56134519fde8
         deleted = <optimized out>
#10 0x00007f8a365485a4 in mail_get_stream_because 
(mail=mail at entry=0x56134519fc58, hdr_size=hdr_size at entry=0x7ffd6e029e90,
     body_size=body_size at entry=0x7ffd6e029eb0, 
reason=reason at entry=0x7f8a3660dc43 "mail stream",
     stream_r=stream_r at entry=0x7ffd6e029e88) at mail.c:282
         _data_stack_cur_id = 7
         p = 0x56134519fc58
         ret = <optimized out>
         __func__ = "mail_get_stream_because"
#11 0x00007f8a3654864f in mail_get_stream 
(mail=mail at entry=0x56134519fc58, hdr_size=hdr_size at entry=0x7ffd6e029e90,
     body_size=body_size at entry=0x7ffd6e029eb0, 
stream_r=stream_r at entry=0x7ffd6e029e88) at mail.c:265
No locals.
#12 0x00007f8a36580207 in maildir_mail_get_virtual_size 
(_mail=0x56134519fc58, size_r=0x5613451a4c40) at maildir-mail.c:413
         mbox = <optimized out>
         mail = 0x56134519fc58
         data = 0x56134519fde8
         hdr_size = {physical_size = 94640763388200, virtual_size = 
94640763713152, lines = 1159209968}
         body_size = {physical_size = 94640763713152, virtual_size = 
94640763713152, lines = 1159020840}
         input = 0x56134515c528
         old_offset = 0
         __func__ = "maildir_mail_get_virtual_size"
#13 0x00007f8a36548158 in mail_get_virtual_size (mail=0x56134519fc58, 
size_r=0x5613451a4c40) at mail.c:176
         _data_stack_cur_id = 6
         p = 0x56134519fc58
         ret = <optimized out>
#14 0x00007f8a36581504 in maildir_save_finish_real (_ctx=0x5613451a4a08) 
at maildir-save.c:563
         ctx = 0x5613451a4a08
         storage = 0x56134515c528
         output_errno = <optimized out>
         path = 0x561345121038 
"/home/vmail/nas00/domains/I/email.com/user3/Maildir/.Sent/tmp/1622651557.M210317P31649.popimap.mailserver.net"
         output_errstr = <optimized out>
         real_size = <optimized out>
         size = 0
#15 maildir_save_finish (ctx=0x5613451a4a08) at maildir-save.c:634
         _data_stack_cur_id = 5
#16 0x00007f8a3655739e in mailbox_save_cancel (_ctx=<optimized out>) at 
mail-storage.c:2683
         ctx = <optimized out>
#17 0x0000561344cb55d2 in cmd_append_finish 
(ctx=ctx at entry=0x561345159540) at cmd-append.c:144
         __func__ = "cmd_append_finish"
#18 0x0000561344cb6918 in cmd_append_continue_message 
(cmd=0x5613451593a8) at cmd-append.c:886
---Type <return> to continue, or q <return> to quit---
         lit_offset = <optimized out>
         client = 0x561345154128
         ctx = 0x561345159540
         ret = <optimized out>
#19 0x0000561344cc5614 in command_exec (cmd=0x5613451593a8) at 
imap-commands.c:201
         hook = 0x56134512c630
         finished = <optimized out>
         __func__ = "command_exec"
#20 0x0000561344cc2dc9 in client_command_cancel 
(_cmd=_cmd at entry=0x7ffd6e02a0c0) at imap-client.c:267
         cmd = 0x5613451593a8
         cmd_ret = <optimized out>
#21 0x0000561344cc2ef4 in client_default_destroy (client=0x561345154128, 
reason=0x561344cd9470 "Disconnected for inactivity")
     at imap-client.c:455
         cmd = 0x5613451593a8
         __func__ = "client_default_destroy"
#22 0x00007f8a3625dd3b in io_loop_handle_timeouts_real 
(ioloop=0x56134512a030) at ioloop.c:681
         timeout = 0x561345159300
         tv_old = {tv_sec = 1622651562, tv_usec = 154561}
         tv = {tv_sec = 0, tv_usec = 0}
         tv_call = {tv_sec = 1622653357, tv_usec = 246247}
         t_id = 3
         item = 0x561345159300
         diff_usecs = <optimized out>
#23 io_loop_handle_timeouts (ioloop=ioloop at entry=0x56134512a030) at 
ioloop.c:695
         _data_stack_cur_id = 2
#24 0x00007f8a3625f89c in io_loop_handler_run_internal 
(ioloop=ioloop at entry=0x56134512a030) at ioloop-epoll.c:195
         ctx = 0x56134512acb0
         events = <optimized out>
         list = <optimized out>
         io = <optimized out>
         tv = {tv_sec = 1795, tv_usec = 60554}
         events_count = 7
         msecs = 1795061
         ret = 0
         i = <optimized out>
         call = <optimized out>
         __func__ = "io_loop_handler_run_internal"
#25 0x00007f8a3625e049 in io_loop_handler_run 
(ioloop=ioloop at entry=0x56134512a030) at ioloop.c:766
         __func__ = "io_loop_handler_run"
#26 0x00007f8a3625e288 in io_loop_run (ioloop=0x56134512a030) at 
ioloop.c:739
         __func__ = "io_loop_run"
#27 0x00007f8a361c8bb3 in master_service_run (service=0x561345129e90, 
callback=callback at entry=0x561344cd2220 <client_connected>)
---Type <return> to continue, or q <return> to quit---
     at master-service.c:853
No locals.
#28 0x0000561344cb5202 in main (argc=2, argv=0x561345129b90) at main.c:546
         set_roots = {0x7f8a364fd0c0 <smtp_submit_setting_parser_info>, 
0x561344ee45e0 <imap_setting_parser_info>, 0x0}
         login_set = {
           auth_socket_path = 0x5613451214d8 "0x7f8a36245d81] -> 
/usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f8a3619725a] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_header_init+0x3b9) 
[0x7f8a365c6dc9] -> /usr/lib64/dovec"...,
           postlogin_socket_path = 0x561345121508 ".so.0(i_fatal+0) 
[0x7f8a3619725a] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_header_init+0x3b9) 
[0x7f8a365c6dc9] -> 
/usr/lib64/dovecot/libdovecot-storage.so.0(index_mail_parse_head"...,
           postlogin_timeout_secs = 60, callback = 0x561344cd2c20 
<login_client_connected>,
           failure_callback = 0x561344cd2330 <login_client_failed>, 
request_auth_token = true}
         service_flags = <optimized out>
         storage_service_flags = <optimized out>
         username = 0x0
         auth_socket_path = <optimized out>
         c = <optimized out>
         error = 0x38000000380 <Address 0x38000000380 out of bounds>
(gdb)

Il 01/06/21 07:24, Aki Tuomi ha scritto:
> Hi!
>
> Any chance you could collect coredumps for these and posting output of
>
> gdb /usr/lib/dovecot/imap /path/to/core
> bt full
>
> systemd-coredump can be used for this, and https://www.dovecot.org/bugreport-mail contains hints how to get core dumps otherwise.
>
> Aki
>
>> On 31/05/2021 23:32 Alessio Cecchi <alessio at skye.it> wrote:
>>
>>   
>> Hi,
>>
>> when I check "doveadm log errors" I found some fatal error repeated many
>> times by around the same users
>>
> <snip/>
>
>
>> Are already know bugs?
>>
>> Thanks
>>
>> -- 
>> Alessio Cecchi
>> Postmaster @ http://www.qboxmail.it
>> https://www.linkedin.com/in/alessice

-- 
Alessio Cecchi
Postmaster @ http://www.qboxmail.it
https://www.linkedin.com/in/alessice



More information about the dovecot mailing list