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

From: martin rudalics <[email-masked]>
Date: Wed, 24 Mar 2021 17:09:24 +0100

>> The attached one should make more sense.  Please use that.
 >
 > I did, and the SEGFAULT happened fairly shortly afterward.  The error
 > did not trigger, so the cause is still unknown.  I'll keep the gdb
 > session around, but that backtrace is pretty much the same.

I'm not surprised.  The check for `replace-buffer-in-windows' does
pretty much the same as Eli's approach.  You just don't have to run
Emacs in the debugger in order to use it.

Maybe try now:

diff --git a/src/buffer.c b/src/buffer.c
index 8e33162989..9ca5731bcf 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2151,6 +2151,9 @@ set_buffer_internal_1 (register struct buffer *b)

    BUFFER_CHECK_INDIRECTION (b);

+  if (!BUFFER_LIVE_P (b))
+    error ("Selecting deleted buffer");
+
    old_buf = current_buffer;
    current_buffer = b;
    last_known_column_point = -1;   /* Invalidate indentation cache.  */

martin