-
-
Notifications
You must be signed in to change notification settings - Fork 31.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes crashes found by pyfailmalloc #62608
Comments
I created a first toy based on the PEP-445 to test of Python handles MemoryError: in short, Python handles them badly... Home page of the project: I will use this issue to track crashes found by this tool. |
New changeset 111c2a070f28 by Victor Stinner in branch 'default': New changeset ba766323b53a by Victor Stinner in branch 'default': New changeset 68887e177dd4 by Victor Stinner in branch 'default': New changeset 697d722d97f9 by Victor Stinner in branch 'default': New changeset de1473f4503b by Victor Stinner in branch 'default': New changeset f4311870e329 by Victor Stinner in branch 'default': New changeset df8b40593a08 by Victor Stinner in branch 'default': |
"I created a first toy based on the PEP-445 to test of Python handles MemoryError: in short, Python handles them badly..." Ooops: to test *how* Python handles.. |
New changeset ba79f6a86300 by Victor Stinner in branch 'default': New changeset 2ef2edfd1a4c by Victor Stinner in branch 'default': New changeset a45407fa4a5b by Victor Stinner in branch 'default': New changeset ed0c9d77e179 by Victor Stinner in branch 'default': New changeset d605c6b8095c by Victor Stinner in branch 'default': New changeset 549d8d3297f2 by Victor Stinner in branch 'default': New changeset c91e7f707562 by Victor Stinner in branch 'default': |
use_failmalloc.patch: Patch to use pyfailmalloc on the Python test suite. Command to run test suite: "gdb -args ./python -m test -F". |
call_exc_trace.patch: Fix for the call_exc_trace() function when the traceback is not set. |
type_slot_tp_str.patch: Fix for the __str__ slot of types (slot_tp_str() in typeobject.c). |
misc_fixes.patch: Misc bugfixes related to MemoryError, this patch should be read carefully. The changes in unicodeobject.c may be written differently. I wrote them to fix a failing assertion ("assert(data != NULL);") in _PyUnicode_CheckConsistency(), called when the creation of a new string failed. |
New changeset 4f730c045f5f by Victor Stinner in branch 'default': |
New changeset 01a46dc00fc8 by Victor Stinner in branch 'default': |
New changeset 39eb1ce5f377 by Victor Stinner in branch 'default': New changeset aaa6e8b8a5c9 by Victor Stinner in branch 'default': New changeset ff93930a53c0 by Victor Stinner in branch 'default': New changeset 1a1869baec4c by Victor Stinner in branch 'default': New changeset e11121b9bd09 by Victor Stinner in branch 'default': New changeset 0877e17fa25e by Victor Stinner in branch 'default': |
New changeset 51eddca9dd6f by Victor Stinner in branch 'default': New changeset 5e50f1a0c985 by Victor Stinner in branch 'default': |
New changeset 4975bcd67aa7 by Victor Stinner in branch 'default': New changeset 1eac89af9acf by Victor Stinner in branch 'default': New changeset d9446c2a2fd4 by Victor Stinner in branch 'default': New changeset 2f7c4df5cc46 by Victor Stinner in branch 'default': New changeset affb87b1d7ec by Victor Stinner in branch 'default': New changeset f85fcbbbe8de by Victor Stinner in branch 'default': New changeset bb5da6e795a1 by Victor Stinner in branch 'default': |
New changeset 89c6495d1ff2 by Victor Stinner in branch 'default': New changeset c80a9705803a by Victor Stinner in branch 'default': |
New changeset 60b1d7967ef8 by Victor Stinner in branch 'default': New changeset 1e0afd558ba3 by Victor Stinner in branch 'default': |
listpop.patch: list_ass_slice() now handles listresize() failure when items are deleted. |
frame_fasttolocals.patch: Add a new PyFrame_FastToLocalsWithError() function, same than PyFrame_FastToLocals(), except that errors are reported. This function is not atomic: if an error occurs in the middle of map_to_dict(), the frame can enter an inconsistent state. Is it worse than not reporting the failure? |
New changeset 735e3c43e61c by Victor Stinner in branch 'default': New changeset 27f8ccce687d by Victor Stinner in branch 'default': New changeset 82b2ee140994 by Victor Stinner in branch 'default': New changeset ef0dbe00760e by Victor Stinner in branch 'default': New changeset c676fc74d779 by Victor Stinner in branch 'default': New changeset 9244e79c6e14 by Victor Stinner in branch 'default': New changeset 71a572a516f9 by Victor Stinner in branch 'default': |
New changeset 2e42c0a39321 by Victor Stinner in branch 'default': New changeset 92a9ccb2a521 by Victor Stinner in branch 'default': New changeset 9213313b1a6f by Victor Stinner in branch 'default': |
I created the issue bpo-18469: "PyStructSequence does not handle exceptions correctly". |
import_init() calls Py_FatalError() at any error. This is not kind for Py_NewInterpreter() which calls import_init(): Py_NewInterpreter() exits Python with a fatal error, instead of returning NULL, on import_init() failure. |
New issue bpo-18470: "tokenizer.c does not handle new_string() failure". |
New changeset 533eb9ab895a by Victor Stinner in branch 'default': New changeset f0efd7ea1627 by Victor Stinner in branch 'default': New changeset 395e67f348e7 by Victor Stinner in branch 'default': New changeset ac4e8e6a7436 by Victor Stinner in branch 'default': New changeset b7c6d203c9fb by Victor Stinner in branch 'default': New changeset 28ff7ac91477 by Victor Stinner in branch 'default': New changeset 6bd01a59762a by Victor Stinner in branch 'default': |
You are great! |
New changeset c8696ee49291 by Victor Stinner in branch 'default': New changeset cf8f42eadbd0 by Victor Stinner in branch 'default': New changeset a685f4c6e0b6 by Victor Stinner in branch 'default': New changeset 7fe4a0c0e905 by Victor Stinner in branch 'default': New changeset 8c1ca6720246 by Victor Stinner in branch 'default': |
New changeset 1872555a2f4e by Victor Stinner in branch 'default': |
Oops. @serhiy: Would *you* like to review attached patches ... |
Another buildbot failure: [150/375/4] test_ctypes Current thread 0x00000001: |
This test from lxml's ElementTree test suite crashes for me now when run against (c)ElementTree: def test_parser_target_error_in_start(self):
assertEqual = self.assertEqual
events = []
class Target(object):
def start(self, tag, attrib):
events.append("start")
assertEqual("TAG", tag)
raise ValueError("TEST")
def end(self, tag):
events.append("end")
assertEqual("TAG", tag)
def close(self):
return "DONE"
parser = ET.XMLParser(target=Target())
Python/ceval.c:1210: PyEval_EvalFrameEx: Assertion `!PyErr_Occurred()' failed. (note: this is not the exact code, I removed a couple of conditions that are not used by ET) |
New changeset 6ec0e9347dd4 by Victor Stinner in branch 'default': |
Thanks for the quick report! Are you testing automatically lxml with the Python HEAD? The issue should be fixed by the changeset 6ec0e9347dd4. I also opened the issue bpo-18501 to discuss how ElementTree should handle Python exceptions. |
New changeset 5a6cdc0d7de1 by Victor Stinner in branch 'default': |
I created the issue bpo-18488: "sqlite: finalize() method of user function may be called with an exception set if a call to step() method failed". |
@victor: yes, the Cython project has CI tests running against debug builds of all CPython branches since 2.4, updated daily. lxml is part of an extended set of tests for Cython, and the test suite of lxml includes several compatibility tests for ElementTree. https://sage.math.washington.edu:8091/hudson/ https://sage.math.washington.edu:8091/hudson/job/cython-devel-lxml-trunk/ I noticed the failures when those tests started failing. Thanks for the quick fix, and actually for all the work you're doing here. |
New changeset 3f25a7dd8346 by Victor Stinner in branch 'default': |
"import_init() calls Py_FatalError() at any error. This is not kind for Py_NewInterpreter() which calls import_init(): Py_NewInterpreter() exits Python with a fatal error, instead of returning NULL, on import_init() failure." I created the issue bpo-18507 for that. |
"fix CJK codecs: using UNIINV to report _PyUnicodeWriter_WriteChar() failure in Modules/cjkcodecs/cjkcodecs.h does not work. The caller is not aware of the failure: multibytecodec_decerror() receives e=1, whereas it should get MBERR_EXCEPTION" I created the issue bpo-18509 for that. |
New changeset 026593cbc006 by Victor Stinner in branch 'default': |
""" Current thread 0x404df8c0: Ned Deily created the issue bpo-18519 for that. It should be fixed by the changeset 026593cbc006. |
New changeset de1ea7f84e08 by Victor Stinner in branch 'default': |
""" FAIL: test_finalize_runnning_thread (test.test_threading.ThreadTests) Traceback (most recent call last):
File "/usr/home/buildbot/koobs-freebsd10/3.x.koobs-freebsd10/build/Lib/test/test_threading.py", line 298, in test_finalize_runnning_thread
self.assertEqual(rc, 42)
AssertionError: -6 != 42
""" Oh, this error is not a regression introduced by this issue: it was already present in the oldest build of this buildbot: |
New changeset 42aecc601a41 by Antoine Pitrou in branch 'default': |
Victor, I'll let you find out how to improve your debug checks, but in the meantime I've reverted the commit that randomly broke some Windows buildbots. |
I didn't know that buildbots are failing. Do you have at least an example? |
It's reported in bpo-18664 (you're nosied there :-)). |
New changeset 79ce25c70795 by Victor Stinner in branch 'default': New changeset e63f19d0a651 by Victor Stinner in branch 'default': New changeset 8fb3a6f9b0a4 by Victor Stinner in branch 'default': |
New changeset 4ef4578db38a by Victor Stinner in branch 'default': |
Ok, most critical bugs have been fixed. If I find new bugs, I will open new issues. |
New changeset e1d51c42e5a1 by Victor Stinner in branch 'default': New changeset 7f4a976829f1 by Victor Stinner in branch 'default': |
New changeset 4749c3ac0654 by Victor Stinner in branch 'default': |
New changeset 549cd815bf8d by Victor Stinner in branch 'default': New changeset 9d9371d4ff7b by Victor Stinner in branch 'default': New changeset 20cd15a28ad3 by Victor Stinner in branch 'default': New changeset 1386fb31c0ed by Victor Stinner in branch 'default': |
New changeset 8f556ee0f6ba by Antoine Pitrou in branch 'default': |
New changeset b742c1c5c0bf by Victor Stinner in branch 'default': |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: