]> granicus.if.org Git - python/commit
bpo-33613, test_semaphore_tracker_sigint: fix race condition (#7850)
authorPablo Galindo <Pablogsal@gmail.com>
Tue, 4 Sep 2018 08:53:54 +0000 (09:53 +0100)
committerAntoine Pitrou <pitrou@free.fr>
Tue, 4 Sep 2018 08:53:54 +0000 (10:53 +0200)
commitec74d187f50a8a48f94eb37023300583fbd644cc
tree718f782542818ce6062448a35f99388511fb1e56
parente9ba3705de656215d52b8f8f4a2e7ad60190e944
bpo-33613, test_semaphore_tracker_sigint: fix race condition (#7850)

Fail `test_semaphore_tracker_sigint` if no warnings are expected and one is received.

Fix race condition when the child receives SIGINT before it can register signal handlers for it.

The race condition occurs when the parent calls
`_semaphore_tracker.ensure_running()` (which in turn spawns the
semaphore_tracker using `_posixsubprocess.fork_exec`), the child
registers the signal handlers and the parent tries to kill the child.
What seem to happen is that in some slow systems, the parent sends the
signal to kill the child before the child protects against the signal.
Lib/multiprocessing/semaphore_tracker.py
Lib/test/_test_multiprocessing.py
Misc/NEWS.d/next/Library/2018-07-31-23-33-06.bpo-33613.Cdnt0i.rst [new file with mode: 0644]