A fetch result was discarded whenever the peer was no longer `Connected` by the time the worker reported, and queued fetches were dropped silently when the peer disconnected before the `Io::Fetch` was processed. In both cases the fetcher's `active` entry for the repo was never cleared. Since that entry is keyed by repo, it blocked the repository from being fetched from any node until the process restarted. - Report the result in `worker_result` even when the peer is no longer connected, instead of returning early - Report a failed fetch when an `Io::Fetch` is dropped for a disconnected peer, so the active entry is cleared - Flip the wire regression test to assert the entry is now cleared on disconnect |
||
|---|---|---|
| .. | ||
| src | ||
| CHANGELOG.md | ||
| Cargo.toml | ||
| build.rs | ||