Subject: bug#72811: closed (Re: bug#72811: 28.2; global-display-line-numbers-mode with debbugs package cause Lisp nesting exceeds ‘max-lisp-eval-depth’)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 14 Sep 2024 07:32:02 +0000

Your bug report

#72811: 28.2; global-display-line-numbers-mode with debbugs package cause Lisp nesting exceeds ‘max-lisp-eval-depth’

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
72811: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72811
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#72811: 28.2; global-display-line-numbers-mode with debbugs package cause Lisp nesting exceeds ‘max-lisp-eval-depth’
From: Eli Zaretskii <[email-masked]>
To: Mats Lidell <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 14 Sep 2024 10:31:00 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Mats Lidell <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Thu, 29 Aug 2024 22:12:16 +0200
> 
> > Eli Zaretskii writes:
> > I guess we already fixed this, so we could close this bug.  Still...
> 
> Yes. But I was curious since I could not find any commit in Emacs that looked
> related to fixing this.
> 
> > ...can you figure out which Lisp caused display-line-numbers-mode or
> > display-line-numbers-mode-on-hook to run tabulated-list-revert?  I
> > couldn't find that anywhere in Emacs, and also not in debbugs.  I do
> > see that debbugs-gnu adds to tabulated-list-revert-hook the function
> > debbugs-gnu-rescan, which then changes the major mode, which causes
> > display-line-numbers-mode to be turned on again, so what happens after
> > that is clear: infinite recursion.  But I cannot understand why was
> > tabulated-list-revert called in the first place.
> 
> I could not either so I filed the bug report. ;-) And hoped someone could
> figure it out. \o/

No further comments, so I'm closing this bug.

Subject: 28.2; global-display-line-numbers-mode with debbugs package cause Lisp nesting exceeds ‘max-lisp-eval-depth’
From: Mats Lidell <[email-masked]>
To: [email-masked]
Date: Mon, 26 Aug 2024 00:19:16 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

With Emacs 27.2 and 28.2 using global-display-line-numbers-mode after fetching a bug with debbugs leads to Lisp nesting exceeds ‘max-lisp-eval-depth’. With Emacs 29.4 or Emacs 30 there is no error.

The recipe used is this:

    (setq debug-on-error t)
    (require 'package)
    (package-refresh-contents)
    (package-install 'debbugs)
    (debbugs-gnu-bugs 100)
    (global-display-line-numbers-mode)

Tested by putting the recipe in a file "dot-emacs" in the current folder and running with docker for the different Emacs versions: (Example for 28.2)

    > docker run -v $(pwd):/emacs -it silex/emacs:28.2 emacs -Q -l /emacs/dot-emacs

The backtrace:

Debugger entered--Lisp error: (error "Lisp nesting exceeds ‘max-lisp-eval-depth’")
  window-normalize-window(#<window 1 on *Bugs*> t)
  set-window-buffer-start-and-point(#<window 1 on *Bugs*> #<buffer *scratch*> #<marker at 1 in *scratch*> #<marker at 1 in *scratch*>)
  switch-to-prev-buffer(#<window 1 on *Bugs*> kill)
  replace-buffer-in-windows(#<buffer *Bugs*>)
  kill-buffer("*Bugs*")
  debbugs-gnu-show-reports()
  debbugs-gnu-rescan()
  run-hooks(tabulated-list-revert-hook)
  tabulated-list-revert()
  run-hooks(display-line-numbers-mode-hook display-line-numbers-mode-on-hook)
  display-line-numbers-mode()
  display-line-numbers--turn-on()
  global-display-line-numbers-mode-enable-in-buffers()
  run-hooks(after-change-major-mode-hook)
  run-mode-hooks(debbugs-gnu-mode-hook)
  debbugs-gnu-mode()
  debbugs-gnu-show-reports()
  debbugs-gnu-rescan()
  run-hooks(tabulated-list-revert-hook)
  tabulated-list-revert()
  run-hooks(display-line-numbers-mode-hook display-line-numbers-mode-on-hook)
  display-line-numbers-mode()
  display-line-numbers--turn-on()
  global-display-line-numbers-mode-enable-in-buffers()
  run-hooks(after-change-major-mode-hook)
  run-mode-hooks(debbugs-gnu-mode-hook)
  debbugs-gnu-mode()
  debbugs-gnu-show-reports()

  [...repeating lines deleted...]

  debbugs-gnu-rescan()
  run-hooks(tabulated-list-revert-hook)
  tabulated-list-revert()
  run-hooks(display-line-numbers-mode-hook display-line-numbers-mode-on-hook)
  display-line-numbers-mode()
  display-line-numbers--turn-on()
  global-display-line-numbers-mode()
  eval-buffer(#<buffer  *load*> nil "/emacs/dot-emacs" nil t)  ; Reading at buffer position 155
  load-with-code-conversion("/emacs/dot-emacs" "/emacs/dot-emacs" nil t)
  load("/emacs/dot-emacs" nil t)
  command-line-1(("-l" "/emacs/dot-emacs"))
  command-line()
  normal-top-level()

Yours
-- 
%% Mats