Open
Description
I observed a code like this on stack overflow:
async def fetch(url, data):
async with ClientSession() as session:
response = await session.post(url, data=data)
return response
The function is really wrong (while it may work for short response body).
The problem is: a session is destroyed before response destruction.
If the response did not come as short data and IO is needed for await response.read()
and family the code fails with a very cryptic exception.
ClientResponse
should have a weak reference to ClientSession
. When the session is gone weakref callback should raise an exception.