From: "Antoine Beaupré" <anarcat@orangeseeds.org>
To: notmuch@notmuchmail.org
Subject: bug: "no top level messages" crash on Zen email loops
Date: Mon, 19 Mar 2018 09:25:17 -0400 [thread overview]
Message-ID: <87d10042pu.fsf@curie.anarc.at> (raw)
[-- Attachment #1: Type: text/plain, Size: 5249 bytes --]
Hi!
Here's a fun bug for you Xapian tricksters.
Two emails attached make notmuch crash when trying to display the
folder.
$ notmuch show thread:0000000000000001
Internal error: Thread 0000000000000001 has no toplevel messages.
(notmuch-show.c:1012)
Those are the two messages:
$ notmuch search --output messages thread:0000000000000001
id:9379QM5Z39_5aa86b134fcfb_174033fc97a2cb98c7198d_sprut@zendesk.com
id:9379QM5Z39_5aa86b1350504_174eb3fc97a2cb98c71674_sprut@zendesk.com
`notmuch show` on either messages crashes the same way:
$ notmuch show id:9379QM5Z39_5aa86b1350504_174eb3fc97a2cb98c71674_sprut@zendesk.com
Internal error: Thread 0000000000000001 has no toplevel messages.
(notmuch-show.c:1012)
Note that displaying the messages weith `--format raw` doesn't crash, so
it's really the thread structure that's broken. Obviously, emacs can't
display the messages either and doesn't touch the unread tags when
trying to load the message, which is to be expected I guess.
Xapian is also unhappy with the database created by notmuch new:
$ xapian-check gitlab/.notmuch/xapian/
docdata:
blocksize=8K items=1 firstunused=1 revision=7 levels=0 root=0
B-tree checked okay
docdata table structure checked OK
termlist:
blocksize=8K items=12 firstunused=4 revision=7 levels=0 root=3
xapian-check: DatabaseError: 1 unused block(s) missing from the free list, first is 0
Valgrind is not particularly unhappy with notmuch, so it doesn't seem
like a memory error:
==26723== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
I tried to track this down in gdb, i got as far as finding that, in
`notmuch_thread_get_toplevel_messages`, the `list` object is corrupt (?)
already (`list->head == NULL`) which obviously makes it hard to, er,
list messages in a thread. :p I lost the exact backtrace and so on, but
I'm not sure there's much we can get from gdb: it seems the problem
might be in notmuch-new, but I'm a little out of my depth to debug
*that* without any further pointers.
This is with 0.26-1~bpo9+1 on Debian stretch, but I can also reproduce
with 0.23 on another Debian stretch machine, using a similar mail
spool.
My guess is that those messages are somewhat special: notice how the
reply-to identifiers *loop* between the two messages?
Message one:
Message-ID: <9379QM5Z39_5aa86b134fcfb_174033fc97a2cb98c7198d_sprut@zendesk.com>
In-Reply-To: <9379QM5Z39@zendesk.com>
<9379QM5Z39_5aa86b1350504_174eb3fc97a2cb98c71674_sprut@zendesk.com>
Message two:
Message-ID: <9379QM5Z39_5aa86b1350504_174eb3fc97a2cb98c71674_sprut@zendesk.com>
In-Reply-To: <9379QM5Z39@zendesk.com>
<9379QM5Z39_5aa86b134fcfb_174033fc97a2cb98c7198d_sprut@zendesk.com>
And indeed, a mailbox with only *one* of those messages doesn't cause
the crash. But also: the original thread is now made of *three*
messages, and taking any one of the two messages above with that *third*
message doesn't cause the crash:
Message three:
Message-ID: <9379QM5Z39_5aaf79c126a_94233ffb30ecb9982187c0_sprut@zendesk.com>
In-Reply-To: <9379QM5Z39@zendesk.com>
<9379QM5Z39_5aa86b1350504_174eb3fc97a2cb98c71674_sprut@zendesk.com>
This message also shows correctly threaded with message two if present,
otherwise the thread is (obviously) broken with only message one and
three.
Mutt displays those messages as a "normal" three-level thread:
1 ! mar 14 GitLab Support (4,7K) Your GitLab support request has been received
2 ! mar 14 GitLab Support (4,5K) └>comments not showing up?
3 O ! mar 19 XXXXXXXXXXXXXXX (7,9K) └>[GitLab, Inc.] Re: comments not showing up?
The numbers on the left (1, 2, 3) correspond to the labeling I used
above as well (one, two, three).
The third message is not included here because it's an actual reply from
a human from GitLab (yay gitlab! :) which I'd need approval before
sharing here. The first message is an automated response so I thought it
was fair game to share publicly. The second is a copy of my own message
which triggered the autoreply, which is probably the source of the
loop. The software generating this mess is Zendesk.com. I haven't had
that problem with other interactions with Zendesk, maybe because I
never talked with a Zendesk that sent autoreplies.
To reproduce this, untar the attachment anywhere (say $HOME) and then
hack a notmuch config file pointing there, e.g.:
$ diff .notmuch-config*
15c15
< path=/home/anarcat/Maildir/
---
> path=/home/anarcat/gitlab/
Then point notmuch to that config (export
NOTMUCH_CONFIG=~/.notmuch-config-test) and run notmuch new (which should
find only two messages). Then run the commands from the above of this
email, of course. :)
Thanks for any input,
A.
PS: I must say I am grateful and impressed by the reliability of
notmuch. I've been using notmuch for *years* now and it's the *first*
time, for as long as I remember, that I had to go back to mutt to read
email. So kudos to the team, good job. :)
--
Si les élections n'étaient pas indispensables à la prospérité du
capital, on ne nous les servirait pas partout, toujours, à coup de
fric, à coup de flics.
- René Binamé
[-- Attachment #2: zendesk-email-loop.tgz --]
[-- Type: application/x-gtar-compressed, Size: 5959 bytes --]
next reply other threads:[~2018-03-19 13:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-19 13:25 Antoine Beaupré [this message]
2018-03-19 16:36 ` bug: "no top level messages" crash on Zen email loops David Bremner
2018-03-19 17:50 ` Antoine Beaupré
2018-03-19 17:56 ` Antoine Beaupré
2018-03-19 19:25 ` tip: how to not forget attachments Antoine Beaupré
2018-03-19 19:57 ` Brian Sniffen
2018-03-19 20:16 ` Antoine Beaupré
2018-03-19 21:40 ` Brian Sniffen
2018-03-19 21:47 ` Antoine Beaupré
2018-03-19 20:03 ` bug: "no top level messages" crash on Zen email loops David Bremner
2018-03-29 3:17 ` Olly Betts
2018-03-29 12:50 ` Antoine Beaupré
2018-03-29 16:31 ` David Bremner
2018-03-30 4:35 ` Olly Betts
2018-03-20 21:22 ` [PATCH 1/2] test: two new messages for the 'broken' corpus David Bremner
2018-03-20 21:22 ` [PATCH 2/2] test: add known broken test for indexing an In-Reply-To loop David Bremner
2018-03-20 22:09 ` Tomi Ollila
2018-03-21 1:34 ` David Bremner
2018-04-02 11:03 ` [PATCH] WIP: test patch for reference loop problem David Bremner
2018-04-13 0:10 ` Antoine Beaupré
2018-04-13 11:17 ` David Bremner
2018-04-28 13:28 ` bug: "no top level messages" crash on Zen email loops David Bremner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d10042pu.fsf@curie.anarc.at \
--to=anarcat@orangeseeds.org \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).