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

From: martin rudalics <[email-masked]>
Date: Tue, 30 Mar 2021 17:05:14 +0200

> Maybe instead of trying to find the exact culprit, we should simply
 > protect this code:
 >
 >        /* Make sure the current window's buffer is selected.  */
 >        set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents));
 >
 > from selecting a dead buffer?  For example, by using
 > other_buffer_safely if the selected-window's buffer is dead.

The problem is that we already detect this situation too late in order
to tell who the real culprit is.  For example, a dead buffer stored in
the selected_window's contents field could have been a dead
current_buffer before.  So for some time we could have been already
running with a dead buffer in that filed.  Long enough maybe to cause
havoc elsewhere.  And what happened in between might not have used
set_buffer_internal but accessed that buffer more directly.

martin