-
-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't read data from Transport after asyncio.SubprocessStreamProtocol closes #73890
Comments
Copied from python/asyncio#484 """ The following script is used to reproduce the bug: import asyncio
async def execute():
process = await asyncio.create_subprocess_exec(
"timeout", "0.1", "cat", "/dev/urandom", stdout=asyncio.subprocess.PIPE)
while True:
data = await process.stdout.read(65536)
print('read %d bytes' % len(data))
if data:
await asyncio.sleep(0.3)
else:
break asyncio.get_event_loop().run_until_complete(execute()) will produce following output and terminate with exception: read 65536 bytes
read 65536 bytes
Traceback (most recent call last):
File "read_subprocess.py", line 18, in <module>
asyncio.get_event_loop().run_until_complete(execute())
File "/usr/lib/python3.6/asyncio/base_events.py", line 466, in run_until_complete
return future.result()
File "read_subprocess.py", line 9, in execute
data = await process.stdout.read(65536)
File "/usr/lib/python3.6/asyncio/streams.py", line 634, in read
self._maybe_resume_transport()
File "/usr/lib/python3.6/asyncio/streams.py", line 402, in _maybe_resume_transport
self._transport.resume_reading()
File "/usr/lib/python3.6/asyncio/unix_events.py", line 401, in resume_reading
self._loop._add_reader(self._fileno, self._read_ready)
AttributeError: 'NoneType' object has no attribute '_add_reader' When the process exits https://github.com/python/asyncio/blob/master/asyncio/unix_events.py#L444 is called which sets this._loop = None
|
Misc/NEWS
so that it is managed by towncrier #552Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: