-
Notifications
You must be signed in to change notification settings - Fork 421
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
fix(rust): handle 429 from GCS #2454
Conversation
ACTION NEEDED delta-rs follows the Conventional Commits specification for release automation. The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification. |
cc @ion-elgreco |
@@ -556,6 +556,7 @@ impl<'a> std::future::IntoFuture for PreparedCommit<'a> { | |||
); | |||
match conflict_checker.check_conflicts() { | |||
Ok(_) => { | |||
println!("Attempt {} failed: Version {} already exists", attempt_number, version); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you can remove this, and fix the linting/fmt, then we are good to go. Also our GCS integration tests are disabled at the moment, so trusting that this works ; P
This change also loosens the meta-crate version dependency to allow more easy upgrades in the future
Fixes #2451
This is probably not the best implementation but it at least let me test the outcome.
Here's my test script:
With this change I now get:
So this is an improvement but the behavior is still problematic: I'm not sure that it's updating to try the next version every time a commit fails. I also don't know if updating to the next version is even the right thing to do, maybe it should be refreshing the table state before retrying in case it's gotten far out of sync (e.g. because writing the data took a long time). Buy maybe these are crate wide or protocol wide issues not related to the particularities of GCS.