fsspec / fsspec/s3fs

asyncio error code does not handle connection lost properly

Open
#930 3 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.