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) *  |
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) *  |
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) *  |
Date: 2019-05-06 23:10 |
Raised a fix in GH-13144 |
|
|
msg341664 - (view) |
Author: anthony shaw (anthonypjshaw) *  |
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) *  |
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) *  |
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. |
|
|