[issue18984] Remove .stopped Event from Thread internals
Tim Peters added the comment: Antoine, could I bother you to try the attached cleanup.patch? It looks harmless to me, but when I checked it in the Unix-y buildbots failed the thread+fork tests again :-( Two examples: http://buildbot.python.org/all/builders/x86%20Gentoo%203.x/builds/4914/steps/test/logs/stdio http://buildbot.python.org/all/builders/x86%20Ubuntu%20Shared%203.x/builds/8581/steps/test/logs/stdio Worse, the buildbot slaves appeared never to finish running then - I had to stop them (via the stop build button). Maybe I'm just tired, but I've stared stared at this and just don't see what's going wrong :-( -- Added file: http://bugs.python.org/file31700/cleanup.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Antoine Pitrou added the comment: I suppose we can close this issue now? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Antoine Pitrou added the comment: Here is a fixed patch (works here, at least :-)). -- Added file: http://bugs.python.org/file31701/cleanup2.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Tim Peters added the comment: Yes - and I just closed 18808 :-) -- stage: patch review - committed/rejected status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Tim Peters added the comment: Well - I remain baffled, but am grateful for the patch - thanks :-) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
New submission from Tim Peters: As discussed in issue 18808, now that we're checking for a tstate lock, the Thread._stopped Event has become an attractive nuisance. The attached patch removes it. This simplifies .join() and .is_alive(), and restores pre-18808 .join(timeout) endcase behavior (i.e., if join returns before the timeout expires, .is_alive() will always be False). Since this doesn't add any new locks, I hope it won't create more problems with fork tests - but running on Windows I wouldn't know ;-) -- assignee: tim.peters components: Library (Lib) files: remove_stopped keywords: needs review, patch messages: 197325 nosy: pitrou, tim.peters priority: normal severity: normal stage: patch review status: open title: Remove .stopped Event from Thread internals versions: Python 3.4 Added file: http://bugs.python.org/file31690/remove_stopped ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Changes by Tim Peters t...@python.org: -- dependencies: +Thread.join returns before PyThreadState is destroyed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Antoine Pitrou added the comment: Hmm.. I'm getting the following failures: == FAIL: test_4_joining_across_fork_in_worker_thread (test.test_threading.ThreadJoinOnShutdown) -- Traceback (most recent call last): File /home/antoine/cpython/default/Lib/test/test_threading.py, line 726, in test_4_joining_across_fork_in_worker_thread self.assertScriptHasOutput(script, end of main\n) File /home/antoine/cpython/default/Lib/test/test_threading.py, line 651, in assertScriptHasOutput rc, out, err = assert_python_ok(-c, script) File /home/antoine/cpython/default/Lib/test/script_helper.py, line 55, in assert_python_ok return _assert_python(True, *args, **env_vars) File /home/antoine/cpython/default/Lib/test/script_helper.py, line 46, in _assert_python stderr follows:\n%s % (rc, err.decode('ascii', 'ignore'))) AssertionError: Process return code is 1, stderr follows: Traceback (most recent call last): File string, line 29, in module AttributeError: 'Thread' object has no attribute '_stopped' == FAIL: test_5_clear_waiter_locks_to_avoid_crash (test.test_threading.ThreadJoinOnShutdown) -- Traceback (most recent call last): File /home/antoine/cpython/default/Lib/test/test_threading.py, line 784, in test_5_clear_waiter_locks_to_avoid_crash self.assertScriptHasOutput(script, output) File /home/antoine/cpython/default/Lib/test/test_threading.py, line 651, in assertScriptHasOutput rc, out, err = assert_python_ok(-c, script) File /home/antoine/cpython/default/Lib/test/script_helper.py, line 55, in assert_python_ok return _assert_python(True, *args, **env_vars) File /home/antoine/cpython/default/Lib/test/script_helper.py, line 46, in _assert_python stderr follows:\n%s % (rc, err.decode('ascii', 'ignore'))) AssertionError: Process return code is 1, stderr follows: Traceback (most recent call last): File string, line 29, in module AttributeError: 'Thread' object has no attribute '_stopped' -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Antoine Pitrou added the comment: Looks like it's mostly the tests trying to check an implementation detail that doesn't exist anymore :-) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Tim Peters added the comment: I agree with your diagnosis. Unfortunately, I can't test the fork stuff. Well, OK, I actually think that's fortunate (for me ;-) ). If you can see a quick way to fix these, please do. I'm going to vanish for about 2 hours now. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Antoine Pitrou added the comment: I think the fix is simply to remove the outdated tests. I've been running test_threading in a loop with the (attached) updated patch, and there hasn't been a single failure. -- type: - resource usage Added file: http://bugs.python.org/file31691/remove_stopped_2.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Roundup Robot added the comment: New changeset aff959a3ba13 by Tim Peters in branch 'default': Issue 18984: Remove ._stopped Event from Thread internals. http://hg.python.org/cpython/rev/aff959a3ba13 -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Tim Peters added the comment: Thanks, Antoine! I pushed this change, figuring that even if some buildbots are still unhappy about 18808, getting rid of the Event can't make them more unhappy, and may make them happier. -- resolution: - fixed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Changes by Tim Peters t...@python.org: -- Removed message: http://bugs.python.org/msg197342 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18984] Remove .stopped Event from Thread internals
Tim Peters added the comment: New changeset aff959a3ba13 by Tim Peters in branch 'default': Issue 18984: Remove ._stopped Event from Thread internals. http://hg.python.org/cpython/rev/aff959a3ba13 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18984 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com