Python 3.12 testing

dwes1@umbc.edu dwes1@umbc.edu
Sun Apr 6 20:32:36 GMT 2025


To the Python maintainer and anyone else testing Python 3.12:

A few weeks ago, the python developer requested help with evaluating the 
Python 3.12 release.
I downloaded the python312-test package, and worked out that
python -m test.test_threading -v
failed during the second test in the file, sometimes with an immediate 
segfault, sometimes by hanging
until I tried to attach gdb, which immediately reported an empty stack 
and a null stack pointer.

Adding print calls to the test narrowed the point of failure to some 
time during thread cleanup,
so I ran the test under gdb, adding breakpoints to pthread_exit and 
pthread::exit, which caught
the test before the segfault, and displayed a stack working back to 
pthread_wrapper, whose caller
was set to null.  Stepping through the function eventually reached a 
call to ExitThread, then the
segfault with no reported stack.

My current guess is that ExitThread somehow returns, leading to control 
falling off the end of
pthread_wrapper and failing to return.  (This is rather more sensible 
than my previous guess
that Python had somehow managed to call the NULL pointer recursively, 
and not noticed until
gdb took a look at things)  I suppose I could try to compile Cygwin with 
an error message after
ExitThread to see if that prints, but I am otherwise out of ideas.

I first checked this around January on a Windows 10 machine from 2016, 
then on a machine from
within the last year that is says it is also Windows 10.

I hope this helps



More information about the Cygwin mailing list