Re: [PATCH 00/11] Fix search tagging races
authorAustin Clements <amdragon@MIT.EDU>
Wed, 9 Oct 2013 16:19:08 +0000 (12:19 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:57:21 +0000 (09:57 -0800)
c7/3e44c98a7c8c0217ca2c87526feb8894f8fd98 [new file with mode: 0644]

diff --git a/c7/3e44c98a7c8c0217ca2c87526feb8894f8fd98 b/c7/3e44c98a7c8c0217ca2c87526feb8894f8fd98
new file mode 100644 (file)
index 0000000..403b90d
--- /dev/null
@@ -0,0 +1,142 @@
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id EB016431FAF\r
+       for <notmuch@notmuchmail.org>; Wed,  9 Oct 2013 09:19:21 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id z2jxCG5PN5oI for <notmuch@notmuchmail.org>;\r
+       Wed,  9 Oct 2013 09:19:13 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-4.mit.edu (dmz-mailsec-scanner-4.mit.edu\r
+       [18.9.25.15])\r
+       by olra.theworths.org (Postfix) with ESMTP id 5F953431FAE\r
+       for <notmuch@notmuchmail.org>; Wed,  9 Oct 2013 09:19:13 -0700 (PDT)\r
+X-AuditID: 1209190f-b7fa08e0000009c6-43-525582003fd0\r
+Received: from mailhub-auth-4.mit.edu ( [18.7.62.39])\r
+       by dmz-mailsec-scanner-4.mit.edu (Symantec Messaging Gateway) with SMTP\r
+       id 19.79.02502.00285525; Wed,  9 Oct 2013 12:19:12 -0400 (EDT)\r
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
+       by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id r99GJBkq021983; \r
+       Wed, 9 Oct 2013 12:19:12 -0400\r
+Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
+       (authenticated bits=0)\r
+       (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+       by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id r99GJ9N8013385\r
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);\r
+       Wed, 9 Oct 2013 12:19:11 -0400\r
+Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80)\r
+       (envelope-from <amdragon@mit.edu>)\r
+       id 1VTwTd-0005fI-5h; Wed, 09 Oct 2013 12:19:09 -0400\r
+Date: Wed, 9 Oct 2013 12:19:08 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: Mark Walters <markwalters1009@gmail.com>\r
+Subject: Re: [PATCH 00/11] Fix search tagging races\r
+Message-ID: <20131009161907.GS21611@mit.edu>\r
+References: <1381185201-25197-1-git-send-email-amdragon@mit.edu>\r
+       <87ob70kxg1.fsf@qmul.ac.uk>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+In-Reply-To: <87ob70kxg1.fsf@qmul.ac.uk>\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFmpkleLIzCtJLcpLzFFi42IRYrdT12VoCg0y6G2xtFg9l8fi+s2ZzA5M\r
+       Hjtn3WX3eLbqFnMAUxSXTUpqTmZZapG+XQJXxok315kLpklUTH3TwtjAuFG4i5GTQ0LARGJO\r
+       9yRWCFtM4sK99WxdjFwcQgL7GCXWHzjGCuFsYJRoWLSYEcI5xSRx4s0VdpAWIYEljBLt3UJd\r
+       jBwcLAIqElfXFoCE2QQ0JLbtX84IYosI6EjcPrQArJxZQFri2+9mJhBbWMBYYv3OE8wgNi9Q\r
+       zbnmf4wQI+Mkjkw7ChUXlDg58wkLRK+WxI1/L5lAVoHMWf6PAyTMCbTq45urYCWiQBdMObmN\r
+       bQKj0Cwk3bOQdM9C6F7AyLyKUTYlt0o3NzEzpzg1Wbc4OTEvL7VI10QvN7NELzWldBMjKKQ5\r
+       Jfl3MH47qHSIUYCDUYmHt6IsNEiINbGsuDL3EKMkB5OSKK9pA1CILyk/pTIjsTgjvqg0J7X4\r
+       EKMEB7OSCG9cCVCONyWxsiq1KB8mJc3BoiTOe5PDPkhIID2xJDU7NbUgtQgmK8PBoSTBuw9k\r
+       qGBRanpqRVpmTglCmomDE2Q4D9DwmyA1vMUFibnFmekQ+VOMilLivMaNQAkBkERGaR5cLyzl\r
+       vGIUB3pFmFcUpIoHmK7gul8BDWYCGrz9ewjI4JJEhJRUA6PDkp6ybVLCtyQCfc3D1n48OyXU\r
+       8V9v3p45i9U593TuDu1aqMK7/9OCFN+sMx+OvkyafOuG0OGzF6bUJjzeF/FzpjenRf3UCxPL\r
+       9s9x4j2lcunElboVRh+Y97FlHvsfdMaiXCn7TlZa6L8qx9c9kjemH/i+8J3f8w+sjAwVHe8q\r
+       bp0sUi6oMa9RYinOSDTUYi4qTgQA+BV1qxQDAAA=\r
+Cc: notmuch@notmuchmail.org\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 09 Oct 2013 16:19:22 -0000\r
+\r
+Quoth Mark Walters on Oct 08 at  8:56 am:\r
+> \r
+> Hello\r
+> \r
+> It's great that this might finally get done. But there is one problem\r
+> currently.\r
+> \r
+> If you open a large search buffer and then do *-<tab> it will die as the\r
+> tagging routine runs notmuch search to find a completion-list for the\r
+> tag. (it runs notmuch search --output=tags <query>)\r
+\r
+Hmm.  If we implement docid queries (described in the TODO added by\r
+this series), we should be able to get away with what we're doing now\r
+without any serious performance problems...\r
+\r
+> We could just return all tags in this case. Or we could do something\r
+> like the series\r
+> id:1354263691-19715-1-git-send-email-markwalters1009@gmail.com\r
+> which makes completion happen based on the tags visible to the user, not\r
+> the tags actually in the database.\r
+\r
+OTOH, I think what you were going for in this series is the right\r
+thing to do from a UI perspective anyway.  I'll try implementing\r
+something along these lines, though I've got an idea that I think will\r
+by more Elispy.  Currently `notmuch-tag' has this strange interface\r
+where it can interactively prompt in some cases.  This isn't the right\r
+way to do this.  `notmuch-tag' should be non-interactive and the\r
+interactive tagging commands should have an interactive specification\r
+that prompts for tags to change, right at the interactive entry point.\r
+This should give us a clean place to provide a list of existing tags,\r
+and would also let us do other nice things like specify a different\r
+tag prompt for * commands, and maybe add a y/n prompt to confirm a *\r
+tagging command.  It would also provide a convenient place to wait for\r
+search results to finish coming in after prompting in the * command,\r
+which would be awkward to do right now.\r
+\r
+> There is also a little discussion of this in my earlier attempt at\r
+> fixing this: eg id:87mwy4smad.fsf@qmul.ac.uk\r
+> \r
+> Best wishes\r
+> \r
+> Mark\r
+> \r
+> On Mon, 07 Oct 2013, Austin Clements <amdragon@MIT.EDU> wrote:\r
+> > I was hacking on undo support for notmuch-emacs and sort of\r
+> > accidentally wrote this instead.  This series fixes a set of\r
+> > well-known races where tagging from search-mode unexpectedly affects\r
+> > messages that arrived after the search was performed (and hence the\r
+> > user doesn't know they're tagging them).  We've attacked this a few\r
+> > times before, but have always run up against something that was\r
+> > missing.  It turns out the pieces are finally all in place.\r
+> >\r
+> > The first five patches just clean various things up in preparation.\r
+> > Patches 6 and 7 add support for tagging large queries, which would\r
+> > otherwise become a problem when later patches start using explicit\r
+> > message ID-based queries for tagging.  The remaining four patches\r
+> > actually fix the search tagging races using explicit message ID-based\r
+> > queries.\r
+> >\r
+> > It's a fairly long series, but none of the patches are very big.\r
+> >\r
+> > _______________________________________________\r
+> > notmuch mailing list\r
+> > notmuch@notmuchmail.org\r
+> > http://notmuchmail.org/mailman/listinfo/notmuch\r