This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pitrou
Recipients Tamas.K, bkabrda, csernazs, grahamd, jcea, ncoghlan, neologix, pitrou, python-dev, tim.peters
Date 2013-09-08.11:08:14
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1378638494.85.0.0355846143947.issue18808@psf.upfronthosting.co.za>
In-reply-to
Content
I think I've found the answer: the thread is sometimes already stopped by the time the child is forked, so it doesn't appear in _enumerate() anymore (it left the _active dict). Therefore its locks are not reset in _after_fork().

Oh, I also get the following sporadic failure which is triggered by slight change in semantics with Thread.join(timeout) :-)

======================================================================
FAIL: test_various_ops (test.test_threading.ThreadTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/antoine/cpython/default/Lib/test/test_threading.py", line 113, in test_various_ops
    self.assertTrue(not t.is_alive())
AssertionError: False is not true
History
Date User Action Args
2013-09-08 11:08:14pitrousetrecipients: + pitrou, tim.peters, jcea, csernazs, ncoghlan, grahamd, neologix, python-dev, bkabrda, Tamas.K
2013-09-08 11:08:14pitrousetmessageid: <1378638494.85.0.0355846143947.issue18808@psf.upfronthosting.co.za>
2013-09-08 11:08:14pitroulinkissue18808 messages
2013-09-08 11:08:14pitroucreate