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 serhiy.storchaka
Recipients gregory.p.smith, izbyshev, nanjekyejoannah, pablogsal, pitrou, serhiy.storchaka, vstinner
Date 2018-12-20.11:34:31
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1545305671.78.0.788709270274.issue35537@psf.upfronthosting.co.za>
In-reply-to
Content
> Do you mean running tests twice, one with posix_spawn(), one without?

I mean that after writing tests they can be tested manually by disabling conditions for posix_spawn one by one. I.e. some tests should fail if remove "stdout is None" and some tests should fail if remove "not close_fds", etc.

> Can you please elaborate? posix_spawn() may or may not use fork() internally.

_posixsubprocess.fork_exec() calls PyOS_BeforeFork/PyOS_AfterFork_Child/PyOS_AfterFork_Parent. If use os.posix_spawn(), these calls will be omitted. This is a behavior change. We should either call these functions manually before/after os.posix_spawn() (but I do not know what to do with PyOS_AfterFork_Child), or disable using os.posix_spawn() if non-trivial callbacks were added, or use other methods for calling registered callbacks. But the stdlib already adds callbacks in the threading and random modules.
History
Date User Action Args
2018-12-20 11:34:31serhiy.storchakasetrecipients: + serhiy.storchaka, gregory.p.smith, pitrou, vstinner, izbyshev, pablogsal, nanjekyejoannah
2018-12-20 11:34:31serhiy.storchakasetmessageid: <1545305671.78.0.788709270274.issue35537@psf.upfronthosting.co.za>
2018-12-20 11:34:31serhiy.storchakalinkissue35537 messages
2018-12-20 11:34:31serhiy.storchakacreate