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 vstinner
Recipients python-dev, vstinner
Date 2011-04-17.23:27:36
SpamBayes Score 0.0029701635
Marked as misclassified No
Message-id <1303082860.22.0.443264505113.issue11768@psf.upfronthosting.co.za>
In-reply-to
Content
> The main thread was waiting test_signals() lock (signalled_all) 
> while it is was interrupted by a signal. The signal handler calls
> Py_AddPendingCall() which blocks on acquiring "pending_lock".

Oh, the main thread receives SIGUSR1: the signal handler calls Py_AddPendingCall() to process it later. But while calling Py_AddPendingCall(), it receives a SIGUSR2: the same signal handler is called, and it calls Py_AddPendingCall().

And we have a deadlock because we try to acquire the lock twice, or try to acquire the lock before the lock was released.
History
Date User Action Args
2011-04-17 23:27:40vstinnersetrecipients: + vstinner, python-dev
2011-04-17 23:27:40vstinnersetmessageid: <1303082860.22.0.443264505113.issue11768@psf.upfronthosting.co.za>
2011-04-17 23:27:36vstinnerlinkissue11768 messages
2011-04-17 23:27:36vstinnercreate