Subject: bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs

From: martin rudalics <[email-masked]>
Date: Fri, 19 Mar 2021 09:15:07 +0100

>>> So the selected window's buffer was killed.  How is that possible?
 >>
 >> Perhaps during run_window_change_functions.
 >
 > Something like that, yes.  But I don't understand how that can happen
 > technically: kill-buffer selects another buffer when killing the
 > current one.  So how was that buffer killed, and yet stayed current?

It's a problem of any hook we run during redisplay:

(1) Redisplay chooses a window as the selected and its buffer as the
     current one.

(2) Lisp code in a hook deletes that window and/or its buffer.

(3) Redisplay continues to work on that window and/or its buffer as if
     it were still alive.

martin