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

Jason Lewis jason at dickson.st
Tue Mar 26 05:38:25 EET 2019


After some investigation, it turns out it is non trivial to install
dovecot-dbg on debian jessie.

Sorry I can't investigate further.

Jason

Aki Tuomi wrote on 25/3/19 6:12 pm:
> 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)
>>
>>
>>
> 

-- 
Jason Lewis
http://emacstragic.net


More information about the dovecot mailing list