Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Stackless 3.4 debug build testsuite failures #75

Closed
ghost opened this issue Feb 22, 2015 · 3 comments
Closed

Stackless 3.4 debug build testsuite failures #75

ghost opened this issue Feb 22, 2015 · 3 comments

Comments

@ghost
Copy link

ghost commented Feb 22, 2015

Originally reported by: Anselm Kruis (Bitbucket: akruis, GitHub: akruis)


Compile a version from branch 3.4-slp on amd64 Linux (Debian 7.8):

$ ./configure --prefix=/tmp/slp342 --with-pydebug
$ make

Then run the test suite

$ make test

Several test cases that pass with C-Python fail:

[140/389/2] test_threading
test test_threading failed -- Traceback (most recent call last):
  File "/home/anselm/src/stackless2/Lib/test/test_threading.py", line 538, in test_main_thread_after_fork_from_nonmain_thread
    self.assertEqual(err, b"")
AssertionError: b"python: Stackless/module/taskletobject.c[163 chars]st):" != b''
[166/389/3] test_tracemalloc
test test_tracemalloc failed -- Traceback (most recent call last):
  File "/home/anselm/src/stackless2/Lib/test/test_tracemalloc.py", line 188, in test_get_traced_memory
    self.assertLessEqual(peak_size - size, max_error)
AssertionError: 137788 not less than or equal to 2048
[366/389/4] test_concurrent_futures
Fatal Python error: Fatal Python error: Fatal Python error: Segmentation fault
[389/389/4] test_multiprocessing_fork
Fatal Python error: Segmentation fault

Here test.regrtest hangs.

About the segfault. If you disable the new faulthandler and undef PY_LOCAL_AGGRESSIVE in ceval.c you can get a useful core dump.
The crash is caused by a cframe that is used as argument for PyEval_EvalFrame_value.
That is a serious bug.

disable_faulthandler.patch.zip


@ghost
Copy link
Author

ghost commented Feb 22, 2015

Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis):


Patch used to enable usable core files. Of course you need "ulimit -c unlimited" too.

@ghost
Copy link
Author

ghost commented Nov 6, 2016

Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis):


Removing milestone: 3.4.2-slp (automated comment)

@ghost
Copy link
Author

ghost commented Dec 12, 2016

Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis):


Now that #103 is resolved, all the test suite of 3.4-slp passes without errors introduced by Stackless. At least in my tests.

@ghost ghost added this to the 3.4.3-slp milestone Sep 24, 2017
@ghost ghost closed this as completed Sep 24, 2017
akruis pushed a commit that referenced this issue Mar 4, 2018
PyEval_Call* APIs are not documented and they doesn't respect PY_SSIZE_T_CLEAN.
So add comment block which recommends PyObject_Call* APIs to ceval.h.

This commit also changes PyEval_CallMethod and PyEval_CallFunction
implementation same to PyObject_CallMethod and PyObject_CallFunction
to reduce future maintenance cost.  Optimization to avoid temporary
tuple are copied too.

PyEval_CallFunction(callable, "i", (int)i) now calls callable(i) instead of
raising TypeError.  But accepting this edge case is backward compatible.
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

0 participants