[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-23 Thread Gregory P. Smith
Gregory P. Smith added the comment: thanks everyone! -- resolution: -> fixed stage: patch review -> commit review status: open -> closed versions: +Python 3.9 ___ Python tracker

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-23 Thread miss-islington
miss-islington added the comment: New changeset 61b3484cdf27ceca1c1069a351487d2db4b2b48c by Miss Islington (bot) (Alex Rebert) in branch '3.7': [3.7] bpo-35182: fix communicate() crash after child closes its pipes (GH-18117) (GH-18151)

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-23 Thread miss-islington
miss-islington added the comment: New changeset 5654f83b9706af88040f515791f1cdc5d81cd9d6 by Miss Islington (bot) (Alex Rebert) in branch '3.8': [3.8] bpo-35182: fix communicate() crash after child closes its pipes (GH-18117) (GH-18148)

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-23 Thread Alex Rebert
Change by Alex Rebert : -- pull_requests: +17537 pull_request: https://github.com/python/cpython/pull/18151 ___ Python tracker ___

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-23 Thread Alex Rebert
Change by Alex Rebert : -- pull_requests: +17534 stage: backport needed -> patch review pull_request: https://github.com/python/cpython/pull/18148 ___ Python tracker ___

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-22 Thread Gregory P. Smith
Gregory P. Smith added the comment: backport automation appears unhappy at the moment. I'm keeping this open and assigned to me to manually run cherry_picker on this for 3.8 and 3.7 (if still open for non-security fixes). -- assignee: -> gregory.p.smith stage: patch review ->

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-22 Thread Gregory P. Smith
Gregory P. Smith added the comment: New changeset d3ae95e1e945ed20297e1c38ba43a18b7a868ab6 by Gregory P. Smith (Alex Rebert) in branch 'master': bpo-35182: fix communicate() crash after child closes its pipes (GH-17020) (GH-18117)

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2020-01-22 Thread Alex Rebert
Change by Alex Rebert : -- pull_requests: +17504 pull_request: https://github.com/python/cpython/pull/18117 ___ Python tracker ___

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2019-10-31 Thread Andriy Maletsky
Change by Andriy Maletsky : -- pull_requests: +16540 pull_request: https://github.com/python/cpython/pull/17023 ___ Python tracker ___

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2019-10-31 Thread Andriy Maletsky
Change by Andriy Maletsky : -- keywords: +patch pull_requests: +16538 stage: needs patch -> patch review pull_request: https://github.com/python/cpython/pull/17020 ___ Python tracker

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2019-10-31 Thread Andriy Maletsky
Andriy Maletsky added the comment: @josh.r but you’re correct regarding cached data that isn’t sent on subsequent communicate() calls. If the child consumes the input too slowly, and timeout occurs before sending all input, the remaining part will be lost. Maybe it is not a bug, but it’s

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2018-11-07 Thread Josh Rosenberg
Josh Rosenberg added the comment: Hmm... Correction to my previous post. communicate itself has a test for: "if self._communication_started and input:" that raises an error if it passes, so the second call to communicate can only be passed None/empty input. And _communicate only explicitly

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2018-11-07 Thread Josh Rosenberg
Josh Rosenberg added the comment: Sounds like the solution you'd want here is to just change each if check in _communicate, so instead of: if self.stdout: selector.register(self.stdout, selectors.EVENT_READ) if self.stderr: selector.register(self.stderr,

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2018-11-07 Thread Andriy Maletsky
Change by Andriy Maletsky : -- components: +Library (Lib) ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2018-11-07 Thread Andriy Maletsky
Change by Andriy Maletsky : -- type: crash -> behavior ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35182] Popen.communicate() breaks when child closes its side of pipe but not exits

2018-11-07 Thread Andriy Maletsky
New submission from Andriy Maletsky : When communicate() is called in a loop, it crashes when the child process has already closed any piped standard stream, but still continues to be running. How this happens: 1) the parent waits for the child events inside communicate() call 2) the child