Make sure that client response life cycle is shorter than client session
Offen
client
enhancement
- Vorherrschende Sprache
- Python
- Sterne
- 16.5k
- Forks
- 2.4k
- Ø Merge
- 17 Std. 22 Min.
- Gemergte PRs (30 T.)
- 212
Beschreibung
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.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.