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

Skip expired backfills instead of returning error #1674

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

glindstedt
Copy link

What this PR does / Why we need it:

If a single backfill has expired it would cause the whole FetchMatches call to error out. Now instead the backfill will be skipped, similar to the NotFound case.

The status code returned for attempting to acknowledge or update an expired backfill is changed from Unavailable since the operation is not retryable. I opted for FailedPrecondition, but maybe InvalidArgument could make more sense since you can't "revive" the backfill, only create a new one if it expired.

Special notes for your reviewer:

There are some formatting changes from format-on-save, let me know if I should remove them to make the PR clearer.

})

// Depends on pendingReleaseTimeout
time.Sleep(1 * time.Second)
Copy link
Author

Choose a reason for hiding this comment

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

This is a bit ugly, would be nice if we could have something like k8s.io/utils/clock/testing to pass the time

@glindstedt glindstedt force-pushed the skip-expired-backfills branch from 7924516 to f31067d Compare November 7, 2023 13:55
If a single backfill has expired it would cause the whole FetchMatches
call to error out. Now the backfill will be skipped instead similar to
the NotFound case. The status code returned for attempting to
acknowledge or update an expired backfill is changed from Unavailable
since the operation is not retryable.
@glindstedt glindstedt force-pushed the skip-expired-backfills branch from f31067d to 7fc3eb3 Compare November 7, 2023 13:56
@@ -183,7 +183,7 @@ func synchronizeRecv(ctx context.Context, syncStream synchronizerStream, m *sync
err = createOrUpdateBackfill(ctx, backfill, ticketIds, store)
if err != nil {
e, ok := status.FromError(err)
if err == errBackfillGenerationMismatch || (ok && e.Code() == codes.NotFound) {
if err == errBackfillGenerationMismatch || (ok && (e.Code() == codes.NotFound || e.Code() == codes.FailedPrecondition)) {
Copy link
Author

Choose a reason for hiding this comment

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

This is the main change

govargo added a commit to govargo/open-match that referenced this pull request Jun 24, 2024
govargo added a commit to govargo/open-match that referenced this pull request Jul 24, 2024
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.

2 participants