Skip to content

Infinite Recursion During Telega Root Buffer Killing #520

Open
@benthamite

Description

@benthamite

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*")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions