From unknown Mon Aug 18 09:09:52 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40974: 28.0.50; Prevent gnus registry from making entries when it shouldn't Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 30 Apr 2020 01:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 40974 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 40974@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158821180423073 (code B ref -1); Thu, 30 Apr 2020 01:57:02 +0000 Received: (at submit) by debbugs.gnu.org; 30 Apr 2020 01:56:44 +0000 Received: from localhost ([127.0.0.1]:45009 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jTyRP-000604-Rr for submit@debbugs.gnu.org; Wed, 29 Apr 2020 21:56:44 -0400 Received: from lists.gnu.org ([209.51.188.17]:50446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jTyRO-0005zx-4X for submit@debbugs.gnu.org; Wed, 29 Apr 2020 21:56:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35976) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTyRN-00064k-I8 for bug-gnu-emacs@gnu.org; Wed, 29 Apr 2020 21:56:41 -0400 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTyRL-0000Hw-RI for bug-gnu-emacs@gnu.org; Wed, 29 Apr 2020 21:56:41 -0400 Received: from ericabrahamsen.net ([52.70.2.18]:46988 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 1jTy30-0008GQ-8D for bug-gnu-emacs@gnu.org; Wed, 29 Apr 2020 21:31:30 -0400 Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 04E89FA02A for ; Thu, 30 Apr 2020 01:31:21 +0000 (UTC) From: Eric Abrahamsen Date: Wed, 29 Apr 2020 18:31:19 -0700 Message-ID: <87r1w5hi8o.fsf@ericabrahamsen.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=52.70.2.18; envelope-from=eric@ericabrahamsen.net; helo=mail.ericabrahamsen.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 21:31:23 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 52.70.2.18 X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain The function `gnus-registry-handle-action' is meant to handle message entries when messages are being moved/copied/deleted. Code comments indicate that if a message is being "moved to nowhere" it's actually being deleted, but the code doesn't actually delete the entry. In fact, because it unilaterally creates an entry before checking what to do with it, but then never deletes it, it will *create* entries for messages being deleted, or moved into groups that should be ignored. The attached patch confirms that registry information about the message should actually be kept, before keeping it. Eric --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Prevent-gnus-registry-handle-action-from-creating-sp.patch >From 110fe2e7e0db383d9d1782863324069bece60fd4 Mon Sep 17 00:00:00 2001 From: Eric Abrahamsen Date: Wed, 29 Apr 2020 18:10:35 -0700 Subject: [PATCH] Prevent gnus-registry-handle-action from creating spurious entries Thanks to Bob Newell for finding this. * lisp/gnus/gnus-registry.el (gnus-registry-handle-action): If a message entry ends up with no groups in its 'group key, that means the entry should be deleted. --- lisp/gnus/gnus-registry.el | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 480ed80ef8..f306889a7f 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -485,23 +485,25 @@ gnus-registry-handle-action (when from (setq entry (cons (delete from (assoc 'group entry)) (assq-delete-all 'group entry)))) - - (dolist (kv `((group ,to) - (sender ,sender) - (recipient ,@recipients) - (subject ,subject))) - (when (cadr kv) - (let ((new (or (assq (car kv) entry) - (list (car kv))))) - (dolist (toadd (cdr kv)) - (unless (member toadd new) - (setq new (append new (list toadd))))) - (setq entry (cons new - (assq-delete-all (car kv) entry)))))) - (gnus-message 10 "Gnus registry: new entry for %s is %S" - id - entry) - (gnus-registry-insert db id entry))) + ;; Only keep the entry if the message is going to a new group, or + ;; it's still in some previous group. + (when (or to (alist-get 'group entry)) + (dolist (kv `((group ,to) + (sender ,sender) + (recipient ,@recipients) + (subject ,subject))) + (when (cadr kv) + (let ((new (or (assq (car kv) entry) + (list (car kv))))) + (dolist (toadd (cdr kv)) + (unless (member toadd new) + (setq new (append new (list toadd))))) + (setq entry (cons new + (assq-delete-all (car kv) entry)))))) + (gnus-message 10 "Gnus registry: new entry for %s is %S" + id + entry) + (gnus-registry-insert db id entry)))) ;; Function for nn{mail|imap}-split-fancy: look up all references in ;; the cache and if a match is found, return that group. -- 2.26.2 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 30 13:35:15 2020 Received: (at control) by debbugs.gnu.org; 30 Apr 2020 17:35:15 +0000 Received: from localhost ([127.0.0.1]:47628 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jUD5b-00061Z-K4 for submit@debbugs.gnu.org; Thu, 30 Apr 2020 13:35:14 -0400 Received: from ericabrahamsen.net ([52.70.2.18]:53904 helo=mail.ericabrahamsen.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jUD5a-00061K-RG for control@debbugs.gnu.org; Thu, 30 Apr 2020 13:35:11 -0400 Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 1E3B0FA028 for ; Thu, 30 Apr 2020 17:35:05 +0000 (UTC) Date: Thu, 30 Apr 2020 10:35:03 -0700 To: control@debbugs.gnu.org From: Eric Abrahamsen Subject: control message for bug #40974 X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" Message-Id: X-Spam-Score: -3.3 (---) tags 40974 + patch quit From unknown Mon Aug 18 09:09:52 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40974: 28.0.50; Prevent gnus registry from making entries when it shouldn't Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 20 May 2020 19:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40974 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 40974@debbugs.gnu.org Received: via spool by 40974-submit@debbugs.gnu.org id=B40974.159000129222855 (code B ref 40974); Wed, 20 May 2020 19:02:02 +0000 Received: (at 40974) by debbugs.gnu.org; 20 May 2020 19:01:32 +0000 Received: from localhost ([127.0.0.1]:54276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbTy7-0005wZ-QC for submit@debbugs.gnu.org; Wed, 20 May 2020 15:01:31 -0400 Received: from ericabrahamsen.net ([52.70.2.18]:56328 helo=mail.ericabrahamsen.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbTy6-0005wJ-Lf for 40974@debbugs.gnu.org; Wed, 20 May 2020 15:01:30 -0400 Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id D155FFA157 for <40974@debbugs.gnu.org>; Wed, 20 May 2020 19:01:24 +0000 (UTC) From: Eric Abrahamsen References: <87r1w5hi8o.fsf@ericabrahamsen.net> Date: Wed, 20 May 2020 12:01:23 -0700 In-Reply-To: <87r1w5hi8o.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Wed, 29 Apr 2020 18:31:19 -0700") Message-ID: <87pnayfn24.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Eric Abrahamsen writes: > The function `gnus-registry-handle-action' is meant to handle message > entries when messages are being moved/copied/deleted. Code comments > indicate that if a message is being "moved to nowhere" it's actually > being deleted, but the code doesn't actually delete the entry. In fact, > because it unilaterally creates an entry before checking what to do with > it, but then never deletes it, it will *create* entries for messages > being deleted, or moved into groups that should be ignored. > > The attached patch confirms that registry information about the message > should actually be kept, before keeping it. Pushed to master. From debbugs-submit-bounces@debbugs.gnu.org Wed May 20 15:01:24 2020 Received: (at control) by debbugs.gnu.org; 20 May 2020 19:01:24 +0000 Received: from localhost ([127.0.0.1]:54273 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbTy0-0005wB-Ko for submit@debbugs.gnu.org; Wed, 20 May 2020 15:01:24 -0400 Received: from ericabrahamsen.net ([52.70.2.18]:56316 helo=mail.ericabrahamsen.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jbTxw-0005vr-Kq for control@debbugs.gnu.org; Wed, 20 May 2020 15:01:24 -0400 Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id DF431FA157 for ; Wed, 20 May 2020 19:01:14 +0000 (UTC) Date: Wed, 20 May 2020 12:01:13 -0700 To: control@debbugs.gnu.org From: Eric Abrahamsen Subject: control message for bug #40974 X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" Message-Id: X-Spam-Score: -3.3 (---) tags 40974 fixed close 40974 28.1 quit