Bug report
Bug description:
There's a segmentation fault in Python 3.14.1 and 3.13.10 which doesn't happen in the previous point releases.
I'm sorry about the messy reproducer, the issue was noticed in a much larger program and this is what I ended up with after removing all the cruft.
seg_fault_issue_import.py:
importasyncioimportatexitclassOtherClass:
__slots__='a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'def__init__(self):
passdefregister_async_client_cleanup():
defcleanup_wrapper():
loop=asyncio.new_event_loop()
loop.close()
atexit.register(cleanup_wrapper)
register_async_client_cleanup()
seg_fault_debug.py:
fromenumimportStrEnumfromseg_fault_issue_importimportOtherClassclassMyClass:
def__init__(self):
self.attr=OtherClass()
classMyEnum(StrEnum):
ATTR="attr"mydata=MyClass()
setattr(mydata, MyEnum.ATTR, None)
Running seg_fault_debug.py causes a segmentation fault with Python 3.13.10 and 3.14.1:
$ python3 seg_fault_debug.py
Segmentation fault (core dumped)
Original reproducer
seg_fault_issue_import.py:
importasyncioimportatexitfromdataclassesimportdataclass@dataclass(slots=True)classCPU:
"""CPU."""count: int|None=Nonefrequency: float|None=Noneload_average: float|None=Noneper_cpu: list[float] |None=Nonepower: float|None=Nonestats: float|None=Nonetemperature: float|None=Nonetimes: float|None=Nonetimes_percent: float|None=Nonedefregister_async_client_cleanup():
defcleanup_wrapper():
loop=asyncio.new_event_loop()
loop.close()
atexit.register(cleanup_wrapper)
register_async_client_cleanup()
seg_fault_debug.py:
fromdataclassesimportdataclass, fieldfromenumimportStrEnumfromseg_fault_issue_importimportCPU@dataclassclassMyDataclass:
attr: None=field(default_factory=CPU)
classMyEnum(StrEnum):
ATTR="attr"mydata=MyDataclass()
setattr(mydata, MyEnum.ATTR, None)
CPython versions tested on:
3.14
Operating systems tested on:
Linux
Linked PRs
Bug report
Bug description:
There's a segmentation fault in Python 3.14.1 and 3.13.10 which doesn't happen in the previous point releases.
I'm sorry about the messy reproducer, the issue was noticed in a much larger program and this is what I ended up with after removing all the cruft.
seg_fault_issue_import.py:seg_fault_debug.py:Running
seg_fault_debug.pycauses a segmentation fault with Python 3.13.10 and 3.14.1:Original reproducer
seg_fault_issue_import.py:seg_fault_debug.py:CPython versions tested on:
3.14
Operating systems tested on:
Linux
Linked PRs