Make sure that client response life cycle is shorter than client session
- Langage dominant
- Python
- Étoiles
- 16.5k
- Forks
- 2.4k
- Merge moyen
- 17 h 22 min
- PR mergées (30 j)
- 212
Description
I observed a code like this on stack overflow:
```python
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.
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.