Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retry feed artifact download on SocketException #7736

Merged
merged 1 commit into from
Aug 10, 2021

Conversation

garath
Copy link
Member

@garath garath commented Aug 10, 2021

Resolves the periodic download failure reported in dotnet/core-eng#13952 by having the download method retry on SocketException.

I was unable to create a repro to test this change or find a better one. However the logging shows that the force-close should be throwing a SocketException, which is not included in the types of Exceptions that the Download method will retry. So adding it here seems like the best choice.

I've also created a small dashboard in Grafana [here] to track occurrences. We can use it to track behavior as this change is rolled out.

@garath garath self-assigned this Aug 10, 2021
@riarenas
Copy link
Member

It's worth noting that this change needs a follow-up where we update the arcade version used by arcade's main branch for the promotion pipeline to start reflecting this retry.

@@ -955,7 +956,7 @@ public async Task<string> GetContainerIdAsync(HttpClient client, ArtifactName ar

return true;
}
catch (Exception toStore) when (toStore is HttpRequestException || toStore is TaskCanceledException)
catch (Exception toStore) when (toStore is HttpRequestException || toStore is TaskCanceledException || toStore is SocketException)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exception do we not want to catch? Could we just... catch them all?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants