Subject: bug#36903: 27.0.50; gnus registry vs. debbugs

From: Michael Heerdegen <[email-masked]>
Date: Sat, 03 Aug 2019 09:11:45 +0200

Hi,

opening articles in the groups generated by debbugs-gnu-search or
debbugs-gnu-bugs fails for me, because I have set up Gnus to use the
registry:

Debugger entered--Lisp error: (cl-no-applicable-method registry-lookup nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  signal(cl-no-applicable-method (registry-lookup nil ("fake+none+nndoc+ephemeral:bug#19892+1")))
  cl-no-applicable-method(#s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  apply(cl-no-applicable-method #s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) (nil ("fake+none+nndoc+ephemeral:bug#19892+1")))
  #f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>)(nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  apply(#f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>) nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  registry-lookup(nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  gnus-registry-get-or-make-entry("fake+none+nndoc+ephemeral:bug#19892+1")
  gnus-registry-get-id-key("fake+none+nndoc+ephemeral:bug#19892+1" group)
  gnus-registry-register-message-ids()
  run-hooks(gnus-summary-prepare-hook)
  apply(run-hooks gnus-summary-prepare-hook)
  gnus-run-hooks(gnus-summary-prepare-hook)
  gnus-summary-prepare()
  gnus-summary-read-group-1("nndoc+ephemeral:bug#19892" t t nil nil nil)
  gnus-summary-read-group("nndoc+ephemeral:bug#19892" t t nil nil nil nil)
  gnus-group-read-group(t t "nndoc+ephemeral:bug#19892" nil)
  gnus-group-read-ephemeral-group("nndoc+ephemeral:bug#19892" (nndoc "/tmp/gnus-temp-group-RfE2Ck" (nndoc-article-type mbox)) nil (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-bug-group((19892) "https://debbugs.gnu.org/cgi/bugreport.cgi?bug=%s;m..." (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-emacs-bug-group((19892) (#<buffer *Bugs*> . #<window-configuration>))
  debbugs-read-emacs-bug-with-gnus(19892 ((cache_time . 1564812360.0822985) (unarchived) (blockedby) (forwarded) (package "emacs") (location . "db-h") (originator . "[email-masked]") (subject . "25.0.50; hideshow: hs-hide-all-non-comment-functio...") (severity . "normal") (fixed (item (key . 27.1) (value))) (found_versions "25.0.50") (msgid . "<[email-masked]>") (mergedwith) (fixed_versions "27.1") (last_modified . 1564773722) (owner) (found (item (key . "25.0.50") (value))) (fixed_date) (id . 19892) (summary) (affects) (keywords "fixed") (source . "unknown") (pending . "done") (found_date) (archived) (done . "Lars Ingebrigtsen <[email-masked]>") (tags "fixed") (date . 1424213161) (bug_num . 19892) (blocks) (log_modified . 1564773722)) nil)
  debbugs-gnu-select-report()

AFAIU the problem is that gnus-registry-db is bound to nil *Bugs* and
that is not expected by the registry (hook) functions.

Similarly, if I do what is suggested in the header of gnus-registry.el:

;; show the marks as single characters (see the :char property in
;; `gnus-registry-marks'):
;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-chars)

I even get an error before the above one:

Debugger entered--Lisp error: (cl-no-applicable-method registry-lookup nil ("<[email-masked]>"))
  signal(cl-no-applicable-method (registry-lookup nil ("<[email-masked]>")))
  cl-no-applicable-method(#s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) nil ("<[email-masked]>"))
  apply(cl-no-applicable-method #s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) (nil ("<[email-masked]>")))
  #f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>)(nil ("<[email-masked]>"))
  apply(#f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>) nil ("<[email-masked]>"))
  registry-lookup(nil ("<[email-masked]>"))
  gnus-registry-get-or-make-entry("<[email-masked]>")
  gnus-registry-get-id-key("<[email-masked]>" mark)
  gnus-user-format-function-M([2 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Michael Heerdegen <[email-masked]>" #("Tue, 17 Feb 2015 23:45:15 +0100" 0 1 (gnus-time (21731 50299))) "<[email-masked]>" nil -1 117 nil ((Cc . "[email-masked], [email-masked]") (To . "[email-masked]"))])
  (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation)
  (insert (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation))
  (progn (insert (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation)) (put-text-property (point) (progn (insert (format "%-23s" (let* ((val ...) (need ...)) (if (> need 0) (concat nil val ...) val)))) (point)) 'mouse-face gnus-mouse-face) (insert "   ") (add-text-properties (point) (progn (insert gnus-tmp-subject-or-nil) (point)) (cons 'face (cons (list 'font-lock-variable-name-face 'default) '(gnus-face t)))) (insert "\n"))
  eval((progn (insert (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation)) (put-text-property (point) (progn (insert (format "%-23s" (let* (... ...) (if ... ... val)))) (point)) 'mouse-face gnus-mouse-face) (insert "   ") (add-text-properties (point) (progn (insert gnus-tmp-subject-or-nil) (point)) (cons 'face (cons (list 'font-lock-variable-name-face 'default) '(gnus-face t)))) (insert "\n")))
  gnus-summary-prepare-threads((([2 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Michael Heerdegen <[email-masked]>" #("Tue, 17 Feb 2015 23:45:15 +0100" 0 1 (gnus-time (21731 50299))) "<[email-masked]>" nil -1 117 nil ((Cc . "[email-masked], [email-masked]") (To . "[email-masked]"))] ([3 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Lars Ingebrigtsen <[email-masked]>" #("Fri, 02 Aug 2019 21:08:54 +0200" 0 1 (gnus-time (23876 35398))) "<[email-masked]>" "<[email-masked]>" -1 60 nil ((Cc . "[email-masked], [email-masked], [email-masked]...") (To . "Michael Heerdegen <[email-masked]>"))]) ([4 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Lars Ingebrigtsen <[email-masked]>" #("Fri, 02 Aug 2019 21:17:00 +0200" 0 1 (gnus-time (23876 35884))) "<[email-masked]>" "<[email-masked]>" -1 61 nil ((Cc . "[email-masked], [email-masked], [email-masked]...") (To . "Michael Heerdegen <[email-masked]>"))])) ([5 "control message for bug #19892" "Lars Ingebrigtsen <[email-masked]>" #("Fri, 02 Aug 2019 21:21:36 +0200" 0 1 (gnus-time (23876 36160))) "<[email-masked]>" nil -1 8 nil ((To . "[email-masked], [email-masked]"))]) ([1 "Status: 25.0.50; hideshow: hs-hide-all-non-comment..." "bug#19892 <[email-masked]>" #("Sat, 03 Aug 2019 07:07:20 +0000" 0 1 (gnus-time (23877 12968))) "fake+none+nndoc+ephemeral:bug#19892+1" nil -1 10 nil ((To . "bug#19892 <[email-masked]>"))])))
  gnus-summary-prepare()
  gnus-summary-read-group-1("nndoc+ephemeral:bug#19892" t t nil nil nil)
  gnus-summary-read-group("nndoc+ephemeral:bug#19892" t t nil nil nil nil)
  gnus-group-read-group(t t "nndoc+ephemeral:bug#19892" nil)
  gnus-group-read-ephemeral-group("nndoc+ephemeral:bug#19892" (nndoc "/tmp/gnus-temp-group-sYDhIR" (nndoc-article-type mbox)) nil (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-bug-group((19892) "https://debbugs.gnu.org/cgi/bugreport.cgi?bug=%s;m..." (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-emacs-bug-group((19892) (#<buffer *Bugs*> . #<window-configuration>))
  debbugs-read-emacs-bug-with-gnus(19892 ((cache_time . 1564812360.0822985) (unarchived) (blockedby) (forwarded) (package "emacs") (location . "db-h") (originator . "[email-masked]") (subject . "25.0.50; hideshow: hs-hide-all-non-comment-functio...") (severity . "normal") (fixed (item (key . 27.1) (value))) (found_versions "25.0.50") (msgid . "<[email-masked]>") (mergedwith) (fixed_versions "27.1") (last_modified . 1564773722) (owner) (found (item (key . "25.0.50") (value))) (fixed_date) (id . 19892) (summary) (affects) (keywords "fixed") (source . "unknown") (pending . "done") (found_date) (archived) (done . "Lars Ingebrigtsen <[email-masked]>") (tags "fixed") (date . 1424213161) (bug_num . 19892) (blocks) (log_modified . 1564773722)) nil)
  debbugs-gnu-select-report()

Hope it's not my fault, but it doesn't really look like that...

TIA,

Michael.