1 Return-Path: <m.walters@qmul.ac.uk>
\r
2 X-Original-To: notmuch@notmuchmail.org
\r
3 Delivered-To: notmuch@notmuchmail.org
\r
4 Received: from localhost (localhost [127.0.0.1])
\r
5 by olra.theworths.org (Postfix) with ESMTP id D4B69431FBD
\r
6 for <notmuch@notmuchmail.org>; Mon, 21 Apr 2014 00:20:38 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=1.748 tagged_above=-999 required=5
\r
12 tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001,
\r
13 NML_ADSP_CUSTOM_MED=1.2, RCVD_IN_BL_SPAMCOP_NET=1.246,
\r
14 RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled
\r
15 Received: from olra.theworths.org ([127.0.0.1])
\r
16 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
17 with ESMTP id kBSCB2RdeJsn for <notmuch@notmuchmail.org>;
\r
18 Mon, 21 Apr 2014 00:20:33 -0700 (PDT)
\r
19 Received: from mail1.qmul.ac.uk (mail1.qmul.ac.uk [138.37.6.7])
\r
20 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
\r
21 (No client certificate requested)
\r
22 by olra.theworths.org (Postfix) with ESMTPS id D60BB431FBC
\r
23 for <notmuch@notmuchmail.org>; Mon, 21 Apr 2014 00:20:32 -0700 (PDT)
\r
24 Received: from smtp.qmul.ac.uk ([138.37.6.40])
\r
25 by mail1.qmul.ac.uk with esmtp (Exim 4.71)
\r
26 (envelope-from <m.walters@qmul.ac.uk>)
\r
27 id 1Wc8We-0002vD-Ik; Mon, 21 Apr 2014 08:20:24 +0100
\r
28 Received: from 92.41.113.2.threembb.co.uk ([92.41.113.2] helo=localhost)
\r
29 by smtp.qmul.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.71)
\r
30 (envelope-from <m.walters@qmul.ac.uk>)
\r
31 id 1Wc8Wc-00084t-Rc; Mon, 21 Apr 2014 08:20:24 +0100
\r
32 From: Mark Walters <markwalters1009@gmail.com>
\r
33 To: Carl Worth <cworth@cworth.org>, David Bremner <david@tethera.net>,
\r
34 notmuch <notmuch@notmuchmail.org>
\r
35 Subject: Re: [RFC PATCH] Re: excessive thread fusing
\r
36 In-Reply-To: <877g6kmcmh.fsf@qmul.ac.uk>
\r
37 References: <87ioq5mrbz.fsf@maritornes.cs.unb.ca> <87fvl8mpzj.fsf@qmul.ac.uk>
\r
38 <87oazwjq1e.fsf@yoom.home.cworth.org> <877g6kmcmh.fsf@qmul.ac.uk>
\r
39 User-Agent: Notmuch/0.15.2+615~g78e3a93 (http://notmuchmail.org) Emacs/23.4.1
\r
40 (x86_64-pc-linux-gnu)
\r
41 Date: Mon, 21 Apr 2014 08:20:13 +0100
\r
42 Message-ID: <8738h7kv2q.fsf@qmul.ac.uk>
\r
44 Content-Type: text/plain; charset=us-ascii
\r
45 X-Sender-Host-Address: 92.41.113.2
\r
46 X-QM-Geographic: According to ripencc,
\r
47 this message was delivered by a machine in Britain (UK) (GB).
\r
48 X-QM-SPAM-Info: Sender has good ham record. :)
\r
49 X-QM-Body-MD5: 8a16c4ce3446ced77f5af078ac173251 (of first 20000 bytes)
\r
50 X-SpamAssassin-Score: 0.0
\r
51 X-SpamAssassin-SpamBar: /
\r
52 X-SpamAssassin-Report: The QM spam filters have analysed this message to
\r
54 spam. We require at least 5.0 points to mark a message as spam.
\r
55 This message scored 0.0 points. Summary of the scoring:
\r
56 * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
\r
57 provider * (markwalters1009[at]gmail.com)
\r
58 X-QM-Scan-Virus: ClamAV says the message is clean
\r
59 X-BeenThere: notmuch@notmuchmail.org
\r
60 X-Mailman-Version: 2.1.13
\r
62 List-Id: "Use and development of the notmuch mail system."
\r
63 <notmuch.notmuchmail.org>
\r
64 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
65 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
66 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
67 List-Post: <mailto:notmuch@notmuchmail.org>
\r
68 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
69 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
70 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
71 X-List-Received-Date: Mon, 21 Apr 2014 07:20:39 -0000
\r
74 >> I haven't tracked through all the logic of the existing algorithm for
\r
75 >> this case. But I don't like hearing that notmuch constructs different
\r
76 >> threads for the same messages presented in different orders. This sounds
\r
77 >> like a bug separate from what we've discussed above.
\r
79 I think I have now found this bug and it is separate from the malformed
\r
80 In-Reply-To problems.
\r
82 The problem is that when we merge threads we update all the thread-ids
\r
83 of documents in the loser thread. But we don't (if I understand the code
\r
84 correctly) update dangling "metadata" references to threads which don't
\r
85 (yet) have any documents.
\r
87 To make this explicit consider the 2 messages 17,18 in the set.
\r
89 Message 17 has id <87wrkidfrh.fsf@pinto.chemeng.ucl.ac.uk> and has no
\r
90 references/in-reply-to so has no parents.
\r
92 Message 18 has a reference to <87wrkidfrh.fsf@pinto.chemeng.ucl.ac.uk>
\r
93 and an in-reply-to to <e.fraga@ucl.ac.uk> and
\r
94 <87wrkidfrh.fsf@pinto.chemeng.ucl.ac.uk>
\r
96 If you add 17 first then it gets thread-id 1 and then when you add 18 message 18 gets
\r
97 thread-id 2 as does the dangling link to the "unseen" message
\r
98 e.fraga@ucl.ac.uk, and then message 17 is moved to thread-id 2.
\r
100 However, if you add 18 first then it gets thread-id 1 and the dangling
\r
101 link gets id 1. When 17 is added it gets thread-id 2, message 18 gets
\r
102 thread-id updated to 2 *but* the dangling link to e.fraga@ucl.ac.uk does
\r
103 not get updated so stays thread-id 1.
\r
105 In particular when 52 comes along with its link to e.fraga@ucl.ac.uk
\r
108 In the first case it gets put in thread-id 3 and the other two
\r
109 messages get moved into thread 3.
\r
111 In the second case, message 52 gets put in thread 3 and thread 1
\r
112 (the dangling link) gets moved into thread 3 leaving thread 2
\r
113 (containing messages 17 and 18) untouched.
\r