Package: emacs;
Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>
Date: Wed, 29 Jan 2020 11:49:02 UTC
Severity: normal
Tags: fixed
Found in version 28.0.50
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Michael Heerdegen <michael_heerdegen <at> web.de> To: bug-gnu-emacs <at> gnu.org Cc: Sam Steingold <sds <at> gnu.org> Subject: 28.0.50; Gnus: Selecting deleted buffer Date: Wed, 29 Jan 2020 12:48:42 +0100
Hello, since today (master built) when exiting Gnus I get this error: Debugger entered--Lisp error: (error "Selecting deleted buffer") set-buffer(#<killed buffer>) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p 'kill-buffer-hook) (progn (setq kill-buffer-hook nil)))) (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p 'kill-buffer-hook) (progn (setq kill-buffer-hook nil)))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (setq --dolist-tail-- (cdr --dolist-tail--))) (while --dolist-tail-- (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p 'kill-buffer-hook) (progn (setq kill-buffer-hook nil)))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (setq --dolist-tail-- (cdr --dolist-tail--)))) (let ((--dolist-tail-- (gnus-buffers))) (while --dolist-tail-- (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p 'kill-buffer-hook) (progn (setq kill-buffer-hook nil)))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (closure (nnmail-spool-file t) nil "Clear all variables and buffers." (let ((variables (remove 'gnus-format-specs gnus-variable-list))) (while variables (set (car variables) nil) (setq variables (cdr variables)))) (setq gnus-list-of-killed-groups nil gnus-have-read-active-file nil gnus-agent-covered-methods nil gnus-agent-file-loading-local nil gnus-agent-file-loading-cache nil gnus-server-method-cache nil gnus-newsrc-alist nil gnus-group-list nil gnus-newsrc-hashtb nil gnus-killed-list nil gnus-zombie-list nil gnus-killed-hashtb nil gnus-active-hashtb nil gnus-moderated-hashtb nil gnus-description-hashtb nil gnus-current-headers nil gnus-thread-indent-array nil gnus-newsgroup-headers nil gnus-newsgroup-name nil gnus-server-alist nil gnus-group-list-mode nil gnus-opened-servers nil gnus-group-mark-positions nil gnus-newsgroup-data nil gnus-newsgroup-unreads ...) (gnus-shutdown 'gnus) (and gnus-current-startup-file (get-file-buffer gnus-current-startup-file) (kill-buffer (get-file-buffer gnus-current-startup-file))) (gnus-dribble-clear) (if (get-file-buffer (gnus-newsgroup-kill-file nil)) (progn (kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil))))) (let ((buf nntp-server-buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (do-auto-save t) (let ((--dolist-tail-- (gnus-buffers))) (while --dolist-tail-- (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p 'kill-buffer-hook) (progn (setq kill-buffer-hook nil)))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (gnus-kill-gnus-frames))() apply((closure (nnmail-spool-file t) nil "Clear all variables and buffers." (let ((variables (remove 'gnus-format-specs gnus-variable-list))) (while variables (set (car variables) nil) (setq variables (cdr variables)))) (setq gnus-list-of-killed-groups nil gnus-have-read-active-file nil gnus-agent-covered-methods nil gnus-agent-file-loading-local nil gnus-agent-file-loading-cache nil gnus-server-method-cache nil gnus-newsrc-alist nil gnus-group-list nil gnus-newsrc-hashtb nil gnus-killed-list nil gnus-zombie-list nil gnus-killed-hashtb nil gnus-active-hashtb nil gnus-moderated-hashtb nil gnus-description-hashtb nil gnus-current-headers nil gnus-thread-indent-array nil gnus-newsgroup-headers nil gnus-newsgroup-name nil gnus-server-alist nil gnus-group-list-mode nil gnus-opened-servers nil gnus-group-mark-positions nil gnus-newsgroup-data nil gnus-newsgroup-unreads ...) (gnus-shutdown 'gnus) (and gnus-current-startup-file (get-file-buffer gnus-current-startup-file) (kill-buffer (get-file-buffer gnus-current-startup-file))) (gnus-dribble-clear) (if (get-file-buffer (gnus-newsgroup-kill-file nil)) (progn (kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil))))) (let ((buf nntp-server-buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (do-auto-save t) (let ((--dolist-tail-- (gnus-buffers))) (while --dolist-tail-- (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p ...) (progn ...))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn ... ...))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (gnus-kill-gnus-frames)) nil) (let ((kill-buffer-query-functions kill-buffer-query-functions)) (remove-hook 'kill-buffer-query-functions 'process-kill-buffer-query-function) (apply f args)) my-gnus-clear-system-around-ad((closure (nnmail-spool-file t) nil "Clear all variables and buffers." (let ((variables (remove 'gnus-format-specs gnus-variable-list))) (while variables (set (car variables) nil) (setq variables (cdr variables)))) (setq gnus-list-of-killed-groups nil gnus-have-read-active-file nil gnus-agent-covered-methods nil gnus-agent-file-loading-local nil gnus-agent-file-loading-cache nil gnus-server-method-cache nil gnus-newsrc-alist nil gnus-group-list nil gnus-newsrc-hashtb nil gnus-killed-list nil gnus-zombie-list nil gnus-killed-hashtb nil gnus-active-hashtb nil gnus-moderated-hashtb nil gnus-description-hashtb nil gnus-current-headers nil gnus-thread-indent-array nil gnus-newsgroup-headers nil gnus-newsgroup-name nil gnus-server-alist nil gnus-group-list-mode nil gnus-opened-servers nil gnus-group-mark-positions nil gnus-newsgroup-data nil gnus-newsgroup-unreads ...) (gnus-shutdown 'gnus) (and gnus-current-startup-file (get-file-buffer gnus-current-startup-file) (kill-buffer (get-file-buffer gnus-current-startup-file))) (gnus-dribble-clear) (if (get-file-buffer (gnus-newsgroup-kill-file nil)) (progn (kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil))))) (let ((buf nntp-server-buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (do-auto-save t) (let ((--dolist-tail-- (gnus-buffers))) (while --dolist-tail-- (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p ...) (progn ...))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn ... ...))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (gnus-kill-gnus-frames))) apply(my-gnus-clear-system-around-ad (closure (nnmail-spool-file t) nil "Clear all variables and buffers." (let ((variables (remove 'gnus-format-specs gnus-variable-list))) (while variables (set (car variables) nil) (setq variables (cdr variables)))) (setq gnus-list-of-killed-groups nil gnus-have-read-active-file nil gnus-agent-covered-methods nil gnus-agent-file-loading-local nil gnus-agent-file-loading-cache nil gnus-server-method-cache nil gnus-newsrc-alist nil gnus-group-list nil gnus-newsrc-hashtb nil gnus-killed-list nil gnus-zombie-list nil gnus-killed-hashtb nil gnus-active-hashtb nil gnus-moderated-hashtb nil gnus-description-hashtb nil gnus-current-headers nil gnus-thread-indent-array nil gnus-newsgroup-headers nil gnus-newsgroup-name nil gnus-server-alist nil gnus-group-list-mode nil gnus-opened-servers nil gnus-group-mark-positions nil gnus-newsgroup-data nil gnus-newsgroup-unreads ...) (gnus-shutdown 'gnus) (and gnus-current-startup-file (get-file-buffer gnus-current-startup-file) (kill-buffer (get-file-buffer gnus-current-startup-file))) (gnus-dribble-clear) (if (get-file-buffer (gnus-newsgroup-kill-file nil)) (progn (kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil))))) (let ((buf nntp-server-buffer)) (if (gnus-buffer-live-p buf) (progn (kill-buffer buf) (gnus-prune-buffers)))) (do-auto-save t) (let ((--dolist-tail-- (gnus-buffers))) (while --dolist-tail-- (let ((buffer (car --dolist-tail--))) (save-current-buffer (set-buffer buffer) (set-buffer-modified-p nil) (if (local-variable-p ...) (progn ...))) (let ((buf buffer)) (if (gnus-buffer-live-p buf) (progn ... ...))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (gnus-kill-gnus-frames)) nil) gnus-clear-system() gnus-group-exit() funcall-interactively(gnus-group-exit) call-interactively(gnus-group-exit nil nil) command-execute(gnus-group-exit) Could this be due to | Make sure that all gnus buffers are killed on exit | 5ee3c37634f7f8651b2da1f4b611334a2b146928 | Author: Sam Steingold <sds <at> gnu.org> | AuthorDate: Fri Jan 10 13:34:59 2020 -0500 ? AFAICT `my-gnus-clear-system-around-ad' is unrelated, it looks like --8<---------------cut here---------------start------------->8--- (defun my-gnus-clear-system-around-ad (f &rest args) (let ((kill-buffer-query-functions kill-buffer-query-functions)) (remove-hook 'kill-buffer-query-functions 'process-kill-buffer-query-function) (apply f args))) --8<---------------cut here---------------end--------------->8--- The problem rather seems to be that the return value of (gnus-buffers) contains killed buffers. TIA, Michael. In GNU Emacs 28.0.50 (build 6, x86_64-pc-linux-gnu, GTK+ Version 3.24.13, cairo version 1.16.0) of 2020-01-29 built on drachen Repository revision: c7e3568e9e62146ee68cb97ca970e03576889a28 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12006000 System Description: Debian GNU/Linux bullseye/sid
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.