bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#39344: 28.0.50; Gnus: Selecting deleted buffer


From: Michael Heerdegen
Subject: bug#39344: 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@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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]