v2.2.27 Panic: file rfc822-parser.h: line 23 (rfc822_parser_deinit): assertion failed: (ctx->data <= ctx->end)

Aki Tuomi aki.tuomi at open-xchange.com
Mon Mar 25 09:12:55 EET 2019


Can you install dovecot-dbg and try gdb again?

Aki

On 25.3.2019 3.20, Jason Lewis via dovecot wrote:
> Hi,
>
> I've been having an issue with the indexer giving me errors on mailbox
> in dovecot.
>
> I managed to narrow it down to a specific email in that mailbox.
>
> Various dovecot functions have issues with this email.
>
> The email itself is just spam. I can email it to you if you want to
> analyse it. I did run it through mbox-anonymize but its not clear to me
> that that would be of any use. Happy to email the suspect email
> privately to anyone who wants it.
>
> /home is mounted nfs4 and is zfs on the nfs server.
>
>
> Dovecot is installed from Debian Jessie.
> $ /usr/sbin/dovecot --version
> 2.2.27 (c0f36b0)
>
> dovecot-core:
>   Installed: 1:2.2.27-3+deb9u2~bpo8+1
>   Candidate: 1:2.2.27-3+deb9u2~bpo8+1
>   Version table:
>  *** 1:2.2.27-3+deb9u2~bpo8+1 0
>         100 /var/lib/dpkg/status
>      1:2.2.13-12~deb8u5 0
>         400 http://security.debian.org/ jessie/updates/main amd64 Packages
>      1:2.2.13-12~deb8u4 0
>         400 http://deb.debian.org/debian/ jessie/main amd64 Packages
>
>
> ~# dovecot -n
> # 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.16 (fed8554)
> # OS: Linux 4.9.0-0.bpo.6-amd64 x86_64 Debian 8.10
> imap_hibernate_timeout = 5 secs
> mail_location = maildir:~/Maildir
> mail_plugins = fts fts_solr
> mailbox_list_index = yes
> namespace inbox {
>   inbox = yes
>   location =
>   mailbox Drafts {
>     special_use = \Drafts
>   }
>   mailbox Junk {
>     special_use = \Junk
>   }
>   mailbox Sent {
>     special_use = \Sent
>   }
>   mailbox "Sent Messages" {
>     special_use = \Sent
>   }
>   mailbox Trash {
>     special_use = \Trash
>   }
>   prefix =
> }
> passdb {
>   driver = pam
> }
> plugin {
>   fts = solr
>   fts_autoindex = yes
>   fts_enforced = yes
>   fts_solr = url=http://10.0.2.19:8080/solr/
>   imapsieve_mailbox1_before = file:/etc/dovecot/train-as-spam.sieve
>   imapsieve_mailbox1_causes = COPY
>   imapsieve_mailbox1_name = Junk
>   imapsieve_mailbox2_before = file:/etc/dovecot/train-as-ham.sieve
>   imapsieve_mailbox2_causes = COPY
>   imapsieve_mailbox2_from = Junk
>   imapsieve_mailbox2_name = *
>   sieve = file:~/sieve;active=~/.dovecot.sieve
>   sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
>   sieve_pipe_bin_dir = /usr/bin
>   sieve_plugins = sieve_imapsieve sieve_extprograms
> }
> protocols = " imap"
> service anvil {
>   client_limit = 1127
> }
> service auth {
>   client_limit = 2200
>   unix_listener /var/spool/postfix/private/auth {
>     mode = 0666
>   }
> }
> service imap-hibernate {
>   unix_listener imap-hibernate {
>     group = dovecot
>     mode = 0660
>   }
> }
> service imap-login {
>   process_limit = 1024
>   process_min_avail = 12
>   service_count = 0
>   vsz_limit = 1 G
> }
> service imap {
>   extra_groups = dovecot
>   unix_listener imap-master {
>     user = dovecot
>   }
> }
> ssl_cert = </etc/letsencrypt/live/imap.organictrader.com.au/fullchain.pem
> ssl_key =  # hidden, use -P to show it
> userdb {
>   driver = passwd
> }
> protocol imap {
>   mail_max_userip_connections = 20
>   mail_plugins = fts fts_solr imap_sieve
> }
>
>
>
>
>
> jason at debian:~$ doveadm -D -f flow fetch imap.envelope mailbox
> crm-spam.2008.g
> Debug: Loading modules from directory: /usr/lib/dovecot/modules
> Debug: Module loaded: /usr/lib/dovecot/modules/lib20_fts_plugin.so
> Debug: Module loaded: /usr/lib/dovecot/modules/lib21_fts_solr_plugin.so
> Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm
> Debug: Skipping module doveadm_acl_plugin, because dlopen() failed:
> /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined
> symbol: acl_user_module (this is usually intentional, so just ignore
> this message)
> Debug: Skipping module doveadm_expire_plugin, because dlopen() failed:
> /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so:
> undefined symbol: expire_set_deinit (this is usually intentional, so
> just ignore this message)
> Debug: Skipping module doveadm_quota_plugin, because dlopen() failed:
> /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so:
> undefined symbol: quota_user_module (this is usually intentional, so
> just ignore this message)
> Debug: Module loaded:
> /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so
> Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen()
> failed:
> /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so:
> undefined symbol: lucene_index_iter_deinit (this is usually intentional,
> so just ignore this message)
> Debug: Module loaded:
> /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so
> Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen()
> failed:
> /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so:
> undefined symbol: mail_crypt_box_get_pvt_digests (this is usually
> intentional, so just ignore this message)
> doveadm(jason): Debug: Effective uid=1000, gid=1000, home=/home/jason
> doveadm(jason): Debug: Namespace inbox: type=private, prefix=, sep=,
> inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir
> doveadm(jason): Debug: maildir++: root=/home/jason/Maildir, index=,
> indexpvt=, control=, inbox=/home/jason/Maildir, alt=
> doveadm(jason): Debug: Namespace : Using permissions from
> /home/jason/Maildir: mode=0700 gid=default
> doveadm(jason): Debug: Mailbox crm-spam.2008.g: Opened mail UID=38
> because: 1/10 headers not cached (first=Sender) (Mail has other cached
> fields, reset_id=1553472765)
> doveadm(jason): Panic: file rfc822-parser.h: line 23
> (rfc822_parser_deinit): assertion failed: (ctx->data <= ctx->end)
> doveadm(jason): Error: Raw backtrace:
> /usr/lib/dovecot/libdovecot.so.0(+0x989ae) [0x7f170b1389ae] ->
> /usr/lib/dovecot/libdovecot.so.0(+0x98a28) [0x7f170b138a28] ->
> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f170b0ce67e] ->
> /usr/lib/dovecot/libdovecot.so.0(+0x7c97d) [0x7f170b11c97d] ->
> /usr/lib/dovecot/libdovecot.so.0(message_address_parse+0x55)
> [0x7f170b11c9e5] ->
> /usr/lib/dovecot/libdovecot.so.0(imap_envelope_parse_header+0x144)
> [0x7f170b110374] ->
> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_parse_header+0xfe)
> [0x7f170b47422e] -> /usr/lib/dovecot/libdovecot.so.0(+0x7979f)
> [0x7f170b11979f] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x53)
> [0x7f170b1437e3] ->
> /usr/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d)
> [0x7f170b14422d] ->
> /usr/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x72)
> [0x7f170b11f3d2] ->
> /usr/lib/dovecot/libdovecot.so.0(message_parse_header+0x4f)
> [0x7f170b11fd7f] ->
> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_headers_get_envelope+0x138)
> [0x7f170b475448] ->
> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_get_special+0x1a1)
> [0x7f170b4796c1] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x69dd3)
> [0x7f170b42fdd3] ->
> /usr/lib/dovecot/libdovecot-storage.so.0(mail_get_special+0xd)
> [0x7f170b400a8d] -> /usr/bin/doveadm(+0x2dca8) [0x562378dd4ca8] ->
> /usr/bin/doveadm(+0x2ed7e) [0x562378dd5d7e] ->
> /usr/bin/doveadm(+0x2a57c) [0x562378dd157c] ->
> /usr/bin/doveadm(+0x2b0da) [0x562378dd20da] ->
> /usr/bin/doveadm(doveadm_cmd_ver2_to_mail_cmd_wrapper+0x21f)
> [0x562378dd2f5f] -> /usr/bin/doveadm(doveadm_cmd_run_ver2+0x560)
> [0x562378de2390] -> /usr/bin/doveadm(doveadm_cmd_try_run_ver2+0x37)
> [0x562378de23e7] -> /usr/bin/doveadm(main+0x1e4) [0x562378dc1f44] ->
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f170ad16b45]
> -> /usr/bin/doveadm(+0x1b32c) [0x562378dc232c]
> Aborted (core dumped)
>
>
> jason at debian:~$ gdb /usr/bin/doveadm /home/jason/core
> GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
> Copyright (C) 2014 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-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from /usr/bin/doveadm...(no debugging symbols found)...done.
> [New LWP 22454]
> Core was generated by `/usr/bin/doveadm -D -f flow fetch imap.envelope
> mailbox crm-spam.2008.g'.
> Program terminated with signal SIGABRT, Aborted.
> #0  0x00007f170ad2a067 in __GI_raise (sig=sig at entry=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> 56	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> (gdb) bt full
> #0  0x00007f170ad2a067 in __GI_raise (sig=sig at entry=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>         resultvar = 0
>         pid = 22454
>         selftid = 22454
> #1  0x00007f170ad2b448 in __GI_abort () at abort.c:89
>         save_stage = 2
>         act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction =
> 0x0}, sa_mask = {__val = {1024, 94710351668199, 94710351535940,
> 139736942472005, 94710351536940, 0,
>               94710367714600, 513, 13251895700223756544, 94710367714600,
> 139736946974659, 94710367714600, 140734907147216, 4294967040,
> 139736946975017, 94710367714600}},
>           sa_flags = 185808618, sa_restorer = 0x7fff6625e401}
>         sigs = {__val = {32, 0 <repeats 15 times>}}
> #2  0x00007f170b1389a6 in ?? () from /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #3  0x00007f170b138a28 in default_fatal_handler () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #4  0x00007f170b0ce67e in i_panic () from /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #5  0x00007f170b11c97d in ?? () from /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #6  0x00007f170b11c9e5 in message_address_parse () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #7  0x00007f170b110374 in imap_envelope_parse_header () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #8  0x00007f170b47422e in index_mail_parse_header () from
> /usr/lib/dovecot/libdovecot-storage.so.0
> No symbol table info available.
> #9  0x00007f170b11979f in ?? () from /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #10 0x00007f170b1437e3 in i_stream_read () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #11 0x00007f170b14422d in i_stream_read_data () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #12 0x00007f170b11f3d2 in message_parse_header_next () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #13 0x00007f170b11fd7f in message_parse_header () from
> /usr/lib/dovecot/libdovecot.so.0
> No symbol table info available.
> #14 0x00007f170b475448 in index_mail_headers_get_envelope () from
> /usr/lib/dovecot/libdovecot-storage.so.0
> No symbol table info available.
> #15 0x00007f170b4796c1 in index_mail_get_special () from
> /usr/lib/dovecot/libdovecot-storage.so.0
> No symbol table info available.
> #16 0x00007f170b42fdd3 in ?? () from
> /usr/lib/dovecot/libdovecot-storage.so.0
> No symbol table info available.
> ---Type <return> to continue, or q <return> to quit---
> #17 0x00007f170b400a8d in mail_get_special () from
> /usr/lib/dovecot/libdovecot-storage.so.0
> No symbol table info available.
> #18 0x0000562378dd4ca8 in ?? ()
> No symbol table info available.
> #19 0x0000562378dd5d7e in ?? ()
> No symbol table info available.
> #20 0x0000562378dd157c in ?? ()
> No symbol table info available.
> #21 0x0000562378dd20da in ?? ()
> No symbol table info available.
> #22 0x0000562378dd2f5f in doveadm_cmd_ver2_to_mail_cmd_wrapper ()
> No symbol table info available.
> #23 0x0000562378de2390 in doveadm_cmd_run_ver2 ()
> No symbol table info available.
> #24 0x0000562378de23e7 in doveadm_cmd_try_run_ver2 ()
> No symbol table info available.
> #25 0x0000562378dc1f44 in main ()
> No symbol table info available.
> (gdb)
>
>
>


More information about the dovecot mailing list