asyncio error code does not handle connection lost properly
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1k
- Forks
- 305
- Avg merge
- 22h 37m
- Merged PRs (30d)
- 4
Description
When using s3fs, I saw this concerning message in the logs:
Future exception was never retrieved
future: <Future finished exception=ConnectionError('Connection lost')>
aiohttp.client_exceptions.ClientOSError: [Errno 32] Broken pipe
The above exception was the direct cause of the following exception:
ConnectionError: Connection lost
Luckily, I was using s3fs to output model checkpoints for training a deep learning model, and the next checkpoint succesfully saved, however, we should really probably properly handle this exception by either forwarding it to the caller, or alternatively, engaging in a low level retry to restore the connection and resume the upload.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the s3fs upload or checkpoint scenario and tracing how the asyncio Future handles the aiohttp connection-loss error. Done means the connection failure is either forwarded to the caller or the upload retries and resumes, with coverage for the broken-pipe case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100