homepage

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 davin, paul.moore, steve.dower, tim.golden, vstinner, zach.ware
Date 2017年05月15日.15:48:38
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1494863318.76.0.122731545758.issue30356@psf.upfronthosting.co.za>
In-reply-to
Content
> manager._process.exitcode == -15
-15 is -signal.SIGTERM and comes from Popen.wait() of multiprocessing.popen_spawn_win32.
 res = _winapi.WaitForSingleObject(int(self._handle), msecs)
 if res == _winapi.WAIT_OBJECT_0:
 code = _winapi.GetExitCodeProcess(self._handle)
 if code == TERMINATE:
 code = -signal.SIGTERM
The process exited and its exit code is 0x10000 (TERMINATE).
I understand that Popen.terminate() of multiprocessing.popen_spawn_win32 was called.
BaseManager.start() registers a finalizer: _finalize_manager(). This method sends a "shutdown" message to the process and then gives 1.0 second to the process to complete. If the process doesn't complete in 1 second, .terminate() is called.
1 second is kind of arbitrary: it depends on the system load. We should give more time to the manager to complete, or accept -signal.SIGTERM as a "valid" exit code.
I see different options:
* Shutdown the manager in test_multiprocessing and give more time to the manager to complete
* Make the timeout configurable
* Allow -signal.SIGTERM exit code in test_mymanager_context()
History
Date User Action Args
2017年05月15日 15:48:38vstinnersetrecipients: + vstinner, paul.moore, tim.golden, zach.ware, steve.dower, davin
2017年05月15日 15:48:38vstinnersetmessageid: <1494863318.76.0.122731545758.issue30356@psf.upfronthosting.co.za>
2017年05月15日 15:48:38vstinnerlinkissue30356 messages
2017年05月15日 15:48:38vstinnercreate

AltStyle によって変換されたページ (->オリジナル) /