Issue 36814: posix_spawn explicit file_actions=None throws error (original) (raw)

Created on 2019-05-06 15:05 by Matthew Tanous, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 13144 merged anthonypjshaw,2019-05-06 23:10
Messages (7)
msg341522 - (view) Author: Matthew Tanous (Matthew Tanous) Date: 2019-05-06 15:05
Allowing posix_spawn file_actions to default to None works, but explicitly setting it throws a TypeError: Python 3.8.0a3 (v3.8.0a3:9a448855b5, Mar 25 2019, 17:05:20) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> os.posix_spawnp('whoami', ['whoami'], os.environ, file_actions=None) Traceback (most recent call last): File "", line 1, in TypeError: file_actions must be a sequence or None This required me to default to an empty sequence to complete it: >>> os.posix_spawnp('whoami', ['whoami'], os.environ, file_actions=[]) 6308
msg341659 - (view) Author: anthony shaw (anthonypjshaw) * (Python triager) Date: 2019-05-06 22:58
Verified on master Python 3.8.0a3+ (heads/bpo-28367:373c7aa098, May 6 2019, 17:34:39) [Clang 10.0.1 (clang-1001.0.46.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> os.posix_spawnp('whoami', ['whoami'], os.environ, file_actions=None) Traceback (most recent call last): File "", line 1, in NameError: name 'os' is not defined >>> import os >>> os.posix_spawnp('whoami', ['whoami'], os.environ, file_actions=None) Traceback (most recent call last): File "", line 1, in TypeError: file_actions must be a sequence or None
msg341661 - (view) Author: anthony shaw (anthonypjshaw) * (Python triager) Date: 2019-05-06 23:07
Issue is in parse_file_actions parse_file_actions(PyObject *file_actions, posix_spawn_file_actions_t *file_actionsp, PyObject *temp_buffer) { PyObject *seq; PyObject *file_action = NULL; PyObject *tag_obj; seq = v(file_actions, "file_actions must be a sequence or None"); if (seq == NULL) { return -1; } PySequence_Fast will raise a TypeError if PyObject_GetIter fails.
msg341663 - (view) Author: anthony shaw (anthonypjshaw) * (Python triager) Date: 2019-05-06 23:10
Raised a fix in GH-13144
msg341664 - (view) Author: anthony shaw (anthonypjshaw) * (Python triager) Date: 2019-05-06 23:14
After patch: Python 3.8.0a3+ (heads/31968-dirty:c664b342a4, May 6 2019, 18:06:21) [Clang 10.0.1 (clang-1001.0.46.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.posix_spawnp('whoami', ['whoami'], os.environ, file_actions=None) 17300 >>> anthonyshaw
msg342036 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-05-10 02:00
New changeset 948ed8c96b6912541a608591efe3e00fb520429a by Victor Stinner (Anthony Shaw) in branch 'master': bpo-36814: ensure os.posix_spawn() handles None (GH-13144) https://github.com/python/cpython/commit/948ed8c96b6912541a608591efe3e00fb520429a
msg342038 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-05-10 02:01
Matthew Tanous: Oops, I completely missed this case! Thanks for the bug report. Thanks Anthony Shaw for the fix.
History
Date User Action Args
2022-04-11 14:59:14 admin set github: 80995
2019-05-10 02:01:01 vstinner set status: open -> closedresolution: fixedmessages: + stage: resolved
2019-05-10 02:00:10 vstinner set nosy: + vstinnermessages: +
2019-05-09 23:29:44 nanjekyejoannah set nosy: + nanjekyejoannah
2019-05-06 23:14:02 anthonypjshaw set messages: +
2019-05-06 23:10:51 anthonypjshaw set messages: + stage: patch review -> (no value)
2019-05-06 23:10:19 anthonypjshaw set keywords: + patchstage: patch reviewpull_requests: + <pull%5Frequest13057>
2019-05-06 23:07:06 anthonypjshaw set assignee: anthonypjshawmessages: +
2019-05-06 22:58:56 anthonypjshaw set nosy: + anthonypjshawmessages: +
2019-05-06 15:05:56 Matthew Tanous create