telega.el
telega.el copied to clipboard
Infinite Recursion During Telega Root Buffer Killing
Description
When attempting to kill a telega buffer (*sent Telega Root*), Emacs encounters an infinite recursion in telega-root--killed, which eventually exceeds max-lisp-eval-depth and crashes.
Observed Behavior
Emacs freezes, then displays an error: "Lisp nesting exceeds 'max-lisp-eval-depth'"
Error Backtrace
The backtrace shows telega-root--killed being called recursively hundreds of times. The issue appears to occur during telega-runtime-teardown() when it attempts to remove advice functions, specifically in the advice--remove-function call related to telega-check-focus-change.
Backtrace
Debugger entered--Lisp error: (error "Lisp nesting exceeds 'max-lisp-eval-depth'")
advice--p(ignore)
advice--tweak(ignore #f(compiled-function (first rest props) #<bytecode -0xb5ce67a0f94efe1>))
advice--tweak(#f(advice blink-cursor--rescan-frames :after ignore) #f(compiled-function (first rest props) #<bytecode -0xb5ce67a0f94efe1>))
advice--tweak(#f(advice doom-modeline-focus-change :after #f(advice blink-cursor--rescan-frames :after ignore)) #f(compiled-function (first rest props) #<bytecode -0xb5ce67a0f94efe1>))
advice--tweak(#f(advice #f(compiled-function () #<bytecode -0x181aa79eaa8be0ac>) :after #f(advice doom-modeline-focus-change :after #f(advice blink-cursor--rescan-frames :after ignore))) #f(compiled-function (first rest props) #<bytecode -0xb5ce67a0f94efe1>))
advice--tweak(#f(advice doom-modeline-update-buffer-file-name :after #f(advice #f(compiled-function () #<bytecode -0x181aa79eaa8be0ac>) :after #f(advice doom-modeline-focus-change :after #f(advice blink-cursor--rescan-frames :after ignore)))) #f(compiled-function (first rest props) #<bytecode -0xb5ce67a0f94efe1>))
advice--tweak(#f(advice posframe--redirect-posframe-focus :after #f(advice doom-modeline-update-buffer-file-name :after #f(advice #f(compiled-function () #<bytecode -0x181aa79eaa8be0ac>) :after #f(advice doom-modeline-focus-change :after #f(advice blink-cursor--rescan-frames :after ignore))))) #f(compiled-function (first rest props) #<bytecode -0xb5ce67a0f94efe1>))
advice--remove-function(#f(advice posframe--redirect-posframe-focus :after #f(advice doom-modeline-update-buffer-file-name :after #f(advice #f(compiled-function () #<bytecode -0x181aa79eaa8be0ac>) :after #f(advice doom-modeline-focus-change :after #f(advice blink-cursor--rescan-frames :after ignore))))) telega-check-focus-change)
telega-runtime-teardown()
telega-root--killed()
[... hundreds of recursive telega-root--killed() calls ...]
kill-buffer("*sent Telega Root*")
Probably this is not related to telega. Try with emacs -Q. Someone calls kill-buffer-hook during kill-buffer-hook processing