[New-bugs-announce] [issue41654] Segfault when raising MemoryError
Oleg Hoefling
report at bugs.python.org
Fri Aug 28 06:15:59 EDT 2020
New submission from Oleg Hoefling <oleg.hoefling at gmail.com>:
First of all, I guess this is a somewhat obscure error that is unlikely to occur in a usual context, nevertheless IMO worth reporting. We observed this when unit-testing custom exception reporting mechanism, raising different exceptions in different contexts and then analyzing whether they are processed correctly.
This is a somewhat dull example I managed to extract from our tests:
from pathlib import Path
from unittest.mock import patch
class TestException(MemoryError):
pass
class report_ctx:
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, tb):
report(exc_value)
class raises:
def __init__(self, ex):
self.ex = ex
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, tb):
return issubclass(exc_type, self.ex)
def report(ex):
pass
def error():
raise MemoryError
modname = Path(__file__).stem
for _ in range(10):
with patch(f"{modname}.report"):
with raises(MemoryError), report_ctx():
raise MemoryError
with raises(TestException):
raise TestException
with raises(MemoryError):
error()
that yields:
Fatal Python error: Segmentation fault
Current thread 0x00007fcf0833b740 (most recent call first):
File "/home/oleg.hoefling/projects/private/python-memoryerror-segfault/main.py", line 38 in <module>
File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 790 in exec_module
File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
File "/usr/lib64/python3.9/unittest/mock.py", line 1236 in _importer
File "/usr/lib64/python3.9/unittest/mock.py", line 1564 in <lambda>
File "/usr/lib64/python3.9/unittest/mock.py", line 1389 in __enter__
File "/home/oleg.hoefling/projects/private/python-memoryerror-segfault/main.py", line 36 in <module>
----------
components: Interpreter Core
messages: 376028
nosy: hoefling
priority: normal
severity: normal
status: open
title: Segfault when raising MemoryError
type: crash
versions: Python 3.10, Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41654>
_______________________________________
More information about the New-bugs-announce
mailing list