New submission from STINNER Victor <[email protected]>:
test_3_join_in_forked_from_thread() of test_threading failed on "x86 Ubuntu
Shared 3.x" buildbot:
-----------------------------------
[201/354] test_threading
[41179 refs]
[40407 refs]
[40407 refs]
[40407 refs]
Timeout (1:00:00)!
Thread 0x404218c0:
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/subprocess.py", line
466 in _eintr_retry_call
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/subprocess.py", line
1486 in _try_wait
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/subprocess.py", line
1528 in wait
File
"/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/test/test_threading.py",
line 455 in _run_and_join
File
"/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/test/test_threading.py",
line 518 in test_3_join_in_forked_from_thread
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/case.py",
line 387 in _executeTestPart
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/case.py",
line 442 in run
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/case.py",
line 494 in __call__
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/suite.py",
line 105 in run
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/suite.py",
line 67 in __call__
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/suite.py",
line 105 in run
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/unittest/suite.py",
line 67 in __call__
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/test/support.py",
line 1078 in run
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/test/support.py",
line 1166 in _run_suite
File "/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/test/support.py",
line 1192 in run_unittest
File
"/srv/buildbot/buildarea/3.x.bolen-ubuntu/build/Lib/test/test_threading.py",
line 728 in test_main
File "./Lib/test/regrtest.py", line 1041 in runtest_inner
File "./Lib/test/regrtest.py", line 835 in runtest
File "./Lib/test/regrtest.py", line 659 in main
File "./Lib/test/regrtest.py", line 1619 in <module>
make: *** [buildbottest] Error 1
program finished with exit code 2
elapsedTime=4426.776675
http://www.python.org/dev/buildbot/all/builders/x86%20Ubuntu%20Shared%203.x/builds/3577/steps/test/logs/stdio
-----------------------------------
Code of the test:
----------------------------------
def _run_and_join(self, script):
script = """if 1:
import sys, os, time, threading
# a thread, which waits for the main program to terminate
def joiningfunc(mainthread):
mainthread.join()
print('end of thread')
# stdout is fully buffered because not a tty, we have to flush
# before exit.
sys.stdout.flush()
\n""" + script
p = subprocess.Popen([sys.executable, "-c", script],
stdout=subprocess.PIPE)
rc = p.wait() <~~~ HANG HEREĀ ~~~~
data = p.stdout.read().decode().replace('\r', '')
p.stdout.close()
self.assertEqual(data, "end of main\nend of thread\n")
self.assertFalse(rc == 2, "interpreter was blocked")
self.assertTrue(rc == 0, "Unexpected error")
@unittest.skipUnless(hasattr(os, 'fork'), "needs os.fork()")
def test_3_join_in_forked_from_thread(self):
# Like the test above, but fork() was called from a worker thread
# In the forked process, the main Thread object must be marked as
stopped.
# Skip platforms with known problems forking from a worker thread.
# See http://bugs.python.org/issue3863.
if sys.platform in ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5',
'os2emx'):
raise unittest.SkipTest('due to known OS bugs on ' + sys.platform)
script = """if 1:
main_thread = threading.current_thread()
def worker():
childpid = os.fork()
if childpid != 0:
os.waitpid(childpid, 0)
sys.exit(0)
t = threading.Thread(target=joiningfunc,
args=(main_thread,))
print('end of main')
t.start()
t.join() # Should not block: main_thread is already stopped
w = threading.Thread(target=worker)
w.start()
"""
self._run_and_join(script)
----------------------------------
----------
components: Tests
messages: 133990
nosy: haypo
priority: normal
severity: normal
status: open
title: test_3_join_in_forked_from_thread() of test_threading hangs 1 hour on
"x86 Ubuntu Shared 3.x"
versions: Python 3.3
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue11870>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com