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
test_builtin crashes when runned in parallel mode on solaris #84321
Comments
test_builting works on serial run 0:00:00 load avg: 2.38 Run tests sequentially == Tests result: SUCCESS == 1 test OK. Total duration: 1.3 sec but with more then one processes, it crashes 0:00:00 load avg: 1.71 Run tests in parallel using 2 child processes == Tests result: FAILURE == 1 test failed: Total duration: 1.4 sec System: SunOS gcc-solaris11 5.11 11.3 sun4u sparc SUNW,SPARC-Enterprise |
Try making bigger the stack size (with ulimit -s ... or similar) |
I modified recently the test: (1) commit 278c1e1
+ support.wait_process(pid, exitcode=0) (2) commit 16d7567 Close the fd *after* calling support.wait_process() to prevent sending SIGHUP to the child process, which made support.wait_process(pid, exitcode=0) to fail since exitcode=-1 (-SIGHUP) != 0. -- test_builtin.test_input_no_stdout_fileno() also hangs on AIX: |
I am understanding "crashing" as "segfaulting" |
Exit code -1 looks like a process killed by SIGHUP. Which commit did you try? Can you please check that you tested with my commit 16d7567? |
See also bpo-40155: "AIX: test_builtin.test_input_no_stdout_fileno() hangs". |
The ulimit results with infinity and this happens on the current master. |
"crashing" as in the test result but not segfaulting |
What is the signal 1 on Solaris? On Linux, it's SIGHUP, not SIGSEGV: $ python3
Python 3.7.6 (default, Jan 30 2020, 09:44:41)
>>> import signal
>>> signal.SIGSEGV
<Signals.SIGSEGV: 11>
>>> signal.SIGHUP
<Signals.SIGHUP: 1> |
isidentical@gcc-solaris11:~$ cpython/python
Python 3.9.0a5+ (heads/master:98ff332, Apr 2 2020, 01:20:22)
[GCC 5.5.0] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import signal
>>> signal.SIGSEGV
<Signals.SIGSEGV: 11>
>>> signal.SIGHUP
<Signals.SIGHUP: 1> |
Batuhan: Can you please test if PR 19312 fix the issue for you on Solaris? |
Which test is causing the issue? Does it still crash if you comment test_input_no_stdout_fileno()? Try to rename it "Xtest_input_no_stdout_fileno" to skip it. What if you only run this test? ./python -m test test_builtin -m test_input_no_stdout_fileno -F -j10 -v Maybe this test should register a signal handler for SIGHUP? This bug looks like bpo-38547 which affected test_pty. I fixed it by registering a SIGHUP signal handler: commit a1838ec
|
isidentical@gcc-solaris11:~/cpython$ ./python -m test test_builtin -m test_input_no_stdout_fileno -F -j10 -v == Tests result: FAILURE == 1 test failed: Total duration: 2.2 sec 19312.patch [ <=> ] 1.62K --.-KB/s in 0s 2020-04-02 23:53:51 (3.38 MB/s) - ‘19312.patch’ saved [4252] == Tests result: FAILURE == 1 test failed: Total duration: 2.7 sec |
Victor, PR 19314 works perfectly. |
Thanks for testing Batuhan ;-) By the way, Solaris is no longer officially supported by Python: There is no more Solaris buildbot. Solaris 11.4 will be likely the last release: Oracle no longer supports Solaris. We may accept minor changes, but no invasive changes. |
I close the issue, it's now fixed in 3.8 and master (and I'm working on a 3.7 backport: PR 19318). Thanks Batuhan for the bug report. |
Well, if needed I can create one but looks like it is going be an obsoleted OS soon :/ |
I dislike the idea of making Python codes to support Solaris, since Solaris vendor doesn't support it anymore... Moreover, it's closed source, and most core devs don't have access to Solaris (ex: me). |
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: