Subject: bug#79318: 31.1.90; Threads + receiving a signal causes a segfault

From: Eli Zaretskii <[email-masked]>
Date: Tue, 26 Aug 2025 21:45:03 +0300

> Date: Tue, 26 Aug 2025 12:19:07 -0400
> From:  Spencer Baugh via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> 
> repro.el:
> 
> (make-thread
>  (lambda ()
>    (sleep-for .1)
>    (signal-process (emacs-pid) 'sigint)))
> (sleep-for 100)
> 
> emacs -Q -l ./repro.el
> 
> Observe Emacs crashes with a segfault while shutting down.

I don't see a segfault in your backtrace, only a shutdown due to
SIGINT (which is a fatal signal in the configuration you ran -- Paul,
am I right?)

> In gdb, the segfault appears to be because current_thread is NULL.

Please show the backtrace from the segfault.  What you posted was a
SIGINT that caused shutdown, which seems to be normal (in the GUI
session on X).  On Windows and in -nw session, there's no shutdown.

Why is this case interesting?  When delivering a fatal signal to the
own Emacs process, a fatal error and a shutdown should not come as a
surprise, right?  Or what am I missing?