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

Created a retry mechanism and added a --retry flag to mc mirror #4715

Merged
merged 11 commits into from
Oct 20, 2023

Conversation

zveinn
Copy link
Contributor

@zveinn zveinn commented Oct 13, 2023

Community Contribution License

All community contributions in this pull request are licensed to the project maintainers
under the terms of the Apache 2 license.
By creating this pull request I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 license.

Description

There are failure cases when doing transfers that are not recoverable in the minio-go library. These cases can be recovered from at a higher level (more specifically in the mc client). This pull request implements a very basic retry mechanism which can be used to encapsulate any logic.

Notes

The retry mechanism is only encapsulating the mc mirror command for now. But we could expand it to encapsulate all transfers, eventually.

There are a few github issues which have been reported with failure cases (not bugs) which might be avoided with this retry mechanism:
#4635
#4231
#3075
#3965 (this one might have been a filesystem issue)
#4138
#4202

How to test this PR?

$ ./functional-tests.sh

Types of changes

  • New feature (non-breaking change which adds functionality)

cmd/mirror-main.go Show resolved Hide resolved
cmd/retry.go Outdated Show resolved Hide resolved
cmd/retry.go Outdated Show resolved Hide resolved
cmd/retry.go Outdated Show resolved Hide resolved
cmd/retry.go Outdated Show resolved Hide resolved
cmd/mirror-main.go Outdated Show resolved Hide resolved
@harshavardhana harshavardhana merged commit eb6f304 into minio:master Oct 20, 2023
5 checks passed
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.

3 participants