From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 72C8B6DE2209 for ; Mon, 19 Mar 2018 06:33:49 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.47 X-Spam-Level: X-Spam-Status: No, score=-0.47 tagged_above=-999 required=5 tests=[AWL=-0.471, UNPARSEABLE_RELAY=0.001] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F5hsxN0AoAPF for ; Mon, 19 Mar 2018 06:33:48 -0700 (PDT) X-Greylist: delayed 506 seconds by postgrey-1.36 at arlo; Mon, 19 Mar 2018 06:33:48 PDT Received: from marcos.anarc.at (marcos.anarc.at [206.248.172.91]) by arlo.cworth.org (Postfix) with ESMTPS id 0E1826DE1475 for ; Mon, 19 Mar 2018 06:33:48 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: anarcat) with ESMTPSA id 0357710E04F From: =?utf-8?Q?Antoine_Beaupr=C3=A9?= To: notmuch@notmuchmail.org Subject: bug: "no top level messages" crash on Zen email loops Date: Mon, 19 Mar 2018 09:25:17 -0400 Message-ID: <87d10042pu.fsf@curie.anarc.at> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Mar 2018 13:33:50 -0000 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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@zen= desk.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=3D8K items=3D1 firstunused=3D1 revision=3D7 levels=3D0 root=3D0 B-tree checked okay docdata table structure checked OK termlist: blocksize=3D8K items=3D12 firstunused=3D4 revision=3D7 levels=3D0 root=3D3 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: =3D=3D26723=3D=3D ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 fr= om 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 =3D=3D 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.co= m> 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) =E2=94=94>comments not showing up? 3 O ! mar 19 XXXXXXXXXXXXXXX (7,9K) =E2=94=94>[GitLab, Inc.] Re: commen= ts 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=3D/home/anarcat/Maildir/ --- > path=3D/home/anarcat/gitlab/ Then point notmuch to that config (export NOTMUCH_CONFIG=3D~/.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. :) --=20 Si les =C3=A9lections n'=C3=A9taient pas indispensables =C3=A0 la prosp=C3= =A9rit=C3=A9 du capital, on ne nous les servirait pas partout, toujours, =C3=A0 coup de fric, =C3=A0 coup de flics. - Ren=C3=A9 Binam=C3=A9 --=-=-= Content-Type: application/x-gtar-compressed Content-Disposition: attachment; filename=zendesk-email-loop.tgz Content-Transfer-Encoding: base64 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 --=-=-=--