From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.help Subject: Re: Gnus and notmuch Date: Thu, 10 Jun 2021 14:05:43 -0700 Message-ID: <875yylsa54.fsf@ericabrahamsen.net> References: <86h7i6yv59.fsf@mailoo.org> <87czstu1un.fsf@ericabrahamsen.net> <865yyly6bn.fsf@mailoo.org> <87fsxpsgpk.fsf@ericabrahamsen.net> <86zgvxwnit.fsf@mailoo.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2209"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: help-gnu-emacs@gnu.org To: Alexis Praga Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jun 10 23:06:19 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lrRsZ-0000Lb-Eo for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 10 Jun 2021 23:06:19 +0200 Original-Received: from localhost ([::1]:60424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lrRsY-0003lf-H3 for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 10 Jun 2021 17:06:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36838) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrRsC-0003lV-UG for help-gnu-emacs@gnu.org; Thu, 10 Jun 2021 17:05:57 -0400 Original-Received: from ericabrahamsen.net ([52.70.2.18]:33430 helo=mail.ericabrahamsen.net) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrRs3-0006sj-V7 for help-gnu-emacs@gnu.org; Thu, 10 Jun 2021 17:05:56 -0400 Original-Received: from localhost (c-71-197-184-122.hsd1.wa.comcast.net [71.197.184.122]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 810E9FA022; Thu, 10 Jun 2021 21:05:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1623359145; bh=a8rw6bgNg6+GpL/gv05kM/eolPeQuovwtv19zgDQCUg=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=Y5BAXfAiVfc9JuzWiGAvfrdAg8QO1IulLEdJxGRyxEQNbPWYoFkJcTazzGraVdbzz q44vZkc9je599vEVvfkyZe4r1tPWDrEUpUMMAwrhDPSpmdWyW8yjdeYjnUnl4mi2hN 2iCCIPz355yIZ96ztV8hph4r6OsfYVPziJWAOtRE= In-Reply-To: <86zgvxwnit.fsf@mailoo.org> (Alexis Praga's message of "Thu, 10 Jun 2021 21:03:06 +0200") Received-SPF: pass client-ip=52.70.2.18; envelope-from=eric@ericabrahamsen.net; helo=mail.ericabrahamsen.net X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:130726 Archived-At: --=-=-= Content-Type: text/plain Alexis Praga writes: > Eric Abrahamsen writes: >> Well, one problem at a time :) >> >> While it should be possible to use a single notmuch installation to >> search two nnmaildir servers, as you're doing, it's also possible that >> this is the source of the problem. Could you also show me your >> ~/.notmuch-config? >> >> These two lines are the source of the problem: gnus-search was able to >> find the article numbers from search hits in the "archive" group, but >> was not able to turn search hits in the "home.alex.mail.free.archive" >> group into article numbers. Usually this means it wasn't actually able >> to locate the files on disk, which usually means there's a mismatch with >> the 'remove-prefix setting. >> >> From the traceback, it looks like you were only searching the >> nnmaildir+gmail:archive group. Do you have any idea why you were getting >> results from home.alex.mail.free.archive? > I don'tt really know why it is searching for the other maildir. That's > why I have been restarting emacs and removing ~/.newrrc.el*, hoping it > would resolve some conflict with my previous attempts. I think see the problem, it's yet more fragility in parsing the output of search results. Notmuch is returning all results in all directories, and Gnus filters out the results it wants depending on which paths match the group name. Because "archive" is a substring of "home.alex.mail.free.archive", it thinks it's a relevant search result. I guess I'm not entirely sure why it fails to find the articles from that group -- I would expect the articles from the other group to be located correctly -- but this is probably still the source of the problem. This stuff is so fragile that I dread to think of what else might break with this change, but... If you're comfortable patching and re-evaluating, would you please apply the attached, then re-evaluate the `gnus-search-indexed-parse-output' method, and see if that fixes the problem? Another proper solution (in addition to this) would be to figure out how to pass the groups parameter to notmuch in either its folder: or path: key. That would avoid duplicate work, and presumably run faster. I'll put this on the todo list. Eric --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=gnus-search-groups.diff diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index fc9f8684f6..71a65ab95d 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1347,15 +1347,18 @@ gnus-search-indexed-parse-output server query &optional groups) (let ((prefix (slot-value engine 'remove-prefix)) (group-regexp (when groups - (mapconcat - (lambda (group-name) - (mapconcat #'regexp-quote - (split-string - (gnus-group-real-name group-name) - "[.\\/]") - "[.\\\\/]")) - groups - "\\|"))) + (concat + "\\`" + (mapconcat + (lambda (group-name) + (mapconcat #'regexp-quote + (split-string + (gnus-group-real-name group-name) + "[.\\/]") + "[.\\\\/]")) + groups + "\\|") + "\\'"))) artlist vectors article group) (goto-char (point-min)) (while (not (or (eobp) --=-=-=--