GNU bug report logs -
#35208
27.0.50; Gnus nndraft error when saving message buffer
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#35208: 27.0.50; Gnus nndraft error when saving message buffer
which was filed against the emacs,gnus package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 35208 <at> debbugs.gnu.org.
--
35208: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35208
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
On Wed, 10 Apr 2019 18:24:02 +0100, Basil L. Contovounesios wrote:
> Katsumi Yamaoka <yamaoka <at> jpl.org> writes:
>> The message is saved with no error, hmmm.
[...]
> Hmm, that's odd. I can reproduce the error 100% of the time.
Oh, I could 100% reproduce this issue. Maybe the cause of
the failure was I did it in the real home directory instead of
the pseudo home. Probably Gnus loaded something from ~/News .
Sorry.
Me culprit. The cause is that `nndraft-update-unread-articles'
fails to go to the nndraft:queue group (in order to delete the
group line if the group has no unread article). nndraft:queue
and its directory are created when Gnus launches, and it is
registered into `gnus-active-hashtb' but not `gnus-newsrc-hashtb'.
So, `gnus-group-goto-group', that I recently changed so as to
use `gnus-newsrc-hashtb' instead of `gnus-active-hashtb', fails
to find the nndraft:queue group.
I've pushed the fix. Thank you for pointing this out.
Regards,
[Message part 3 (message/rfc822, inline)]
Trying to save a draft, e.g. as follows:
0. HOME=$(mktemp -d) emacs -Q
1. M-x toggle-debug-on-error RET
2. (setq gnus-select-method '(nnnil)) C-j
3. M-x gnus RET
4. m
5. foo C-x C-s
results in the following error:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
nndraft-update-unread-articles()
run-hooks(after-save-hook)
basic-save-buffer(t)
save-buffer(1)
funcall-interactively(save-buffer 1)
call-interactively(save-buffer nil nil)
command-execute(save-buffer)
--8<---------------cut here---------------end--------------->8---
Reevaluating nndraft-update-unread-articles and repeating step (5) gives
the following backtrace:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
=(0 nil)
(if (= 0 (gnus-group-group-unread)) (progn (delete-region (point-at-bol) (progn (forward-line 1) (point)))))
(if (and gnus-permanently-visible-groups (string-match gnus-permanently-visible-groups group)) nil (gnus-group-goto-group group) (if (= 0 (gnus-group-group-unread)) (progn (delete-region (point-at-bol) (progn (forward-line 1) (point))))))
(while --dolist-tail-- (setq group (car --dolist-tail--)) (if (and gnus-permanently-visible-groups (string-match gnus-permanently-visible-groups group)) nil (gnus-group-goto-group group) (if (= 0 (gnus-group-group-unread)) (progn (delete-region (point-at-bol) (progn (forward-line 1) (point)))))) (setq --dolist-tail-- (cdr --dolist-tail--)))
(let ((--dolist-tail-- groups) group) (while --dolist-tail-- (setq group (car --dolist-tail--)) (if (and gnus-permanently-visible-groups (string-match gnus-permanently-visible-groups group)) nil (gnus-group-goto-group group) (if (= 0 (gnus-group-group-unread)) (progn (delete-region (point-at-bol) (progn (forward-line 1) (point)))))) (setq --dolist-tail-- (cdr --dolist-tail--))))
(save-excursion (let ((--dolist-tail-- groups) group) (while --dolist-tail-- (setq group (car --dolist-tail--)) (if (and gnus-permanently-visible-groups (string-match gnus-permanently-visible-groups group)) nil (gnus-group-goto-group group) (if (= 0 (gnus-group-group-unread)) (progn (delete-region (point-at-bol) (progn ... ...))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
(let* ((groups (mapcar #'(lambda (elem) (gnus-group-prefixed-name (car elem) (list ... ""))) (nnmail-get-active))) (gnus-group-marked (copy-sequence groups)) (gnus-get-new-news-hook nil) (inhibit-read-only t)) (gnus-group-get-new-news-this-group nil t) (save-excursion (let ((--dolist-tail-- groups) group) (while --dolist-tail-- (setq group (car --dolist-tail--)) (if (and gnus-permanently-visible-groups (string-match gnus-permanently-visible-groups group)) nil (gnus-group-goto-group group) (if (= 0 (gnus-group-group-unread)) (progn (delete-region ... ...)))) (setq --dolist-tail-- (cdr --dolist-tail--))))))
(save-current-buffer (set-buffer gnus-group-buffer) (let* ((groups (mapcar #'(lambda (elem) (gnus-group-prefixed-name ... ...)) (nnmail-get-active))) (gnus-group-marked (copy-sequence groups)) (gnus-get-new-news-hook nil) (inhibit-read-only t)) (gnus-group-get-new-news-this-group nil t) (save-excursion (let ((--dolist-tail-- groups) group) (while --dolist-tail-- (setq group (car --dolist-tail--)) (if (and gnus-permanently-visible-groups (string-match gnus-permanently-visible-groups group)) nil (gnus-group-goto-group group) (if (= 0 ...) (progn ...))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))
nndraft-update-unread-articles()
run-hooks(after-save-hook)
basic-save-buffer(t)
save-buffer(1)
funcall-interactively(save-buffer 1)
call-interactively(save-buffer nil nil)
command-execute(save-buffer)
--8<---------------cut here---------------end--------------->8---
I'm temporarily working around this by
changing (zerop (gnus-group-group-unread))
to (eq 0 (gnus-group-group-unread)),
but a larger problem seems to be at play.
Any tips? Thanks,
--
Basil
Gnus v5.13
In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2019-04-09 built on thunk
Repository revision: 44b306d3510e54432b76724583ea9405f1c90686
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12003000
System Description: Debian GNU/Linux buster/sid
Configured using:
'configure 'CC=ccache gcc' 'CFLAGS=-O2 -march=native' --config-cache
--prefix=/home/blc/.local --with-mailutils --with-x-toolkit=lucid
--with-modules --with-file-notification=yes --with-x'
Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS
GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS
LIBSYSTEMD JSON PDUMPER LCMS2 GMP
This bug report was last modified 6 years and 94 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.