Closed
Description
Crash report
What happened?
A simple standalone file:
# test1.py
import time
obj = time.struct_time(range(1, 10))
$ pyenv install 3.14t-dev --debug
$ pyenv local 3.14t-dev-debug
$ python3 -VV
Python 3.14.0a0 experimental free-threading build (heads/main:bd3d31f, Aug 1 2024, 01:22:33) [Clang 15.0.0 (clang-1500.3.9.4)]
$ python3 test1.py
Fatal Python error: _Py_Dealloc: Deallocator of type 'time.struct_time' raised an exception
Python runtime state: finalizing (tstate=0x00000001018ca548)
Exception ignored in the internal traceback machinery:
ImportError: sys.meta_path is None, Python is likely shutting down
TypeError: Missed attribute 'n_fields' of type time.struct_time
Current thread 0x00000001fff70c00 (most recent call first):
Garbage-collecting
<no Python frame>
[1] 89377 abort python3 test1.py
$ python3 -c 'import test1'
Fatal Python error: _Py_Dealloc: Deallocator of type 'time.struct_time' raised an exception
Python runtime state: finalizing (tstate=0x00000001040a2548)
Exception ignored in the internal traceback machinery:
ImportError: sys.meta_path is None, Python is likely shutting down
TypeError: Missed attribute 'n_fields' of type time.struct_time
Current thread 0x00000001fff70c00 (most recent call first):
Garbage-collecting
<no Python frame>
[1] 89737 abort python3 -c 'import test1'
If I remove the assignment for obj
, the program can exit successfully.
# test2.py
import time
time.struct_time(range(1, 10))
$ python3 test2.py # no output
$ python3 -c 'import test2' # no output
CPython versions tested on:
CPython main branch, CPython 3.13t, CPython 3.14t
Operating systems tested on:
Linux, macOS
Output from running 'python -VV' on the command line:
Python 3.14.0a0 experimental free-threading build (heads/main:bd3d31f, Aug 1 2024, 01:22:33) [Clang 15.0.0 (clang-1500.3.9.4)]