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]>
Date: Thu, 29 Aug 2024 15:00:14 +0300

> Cc: Robert Weiner <[email-masked]>
> Date: Mon, 26 Aug 2024 00:19:16 +0200
> From:  Mats Lidell via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> 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.

I guess we already fixed this, so we could close this bug.  Still...

>   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()

...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.