Skip to content

fix: non-idempotent object store deletes#26839

Merged
waynr merged 2 commits into
mainfrom
fix/non-idempotent-object-store-deletes
Sep 25, 2025
Merged

fix: non-idempotent object store deletes#26839
waynr merged 2 commits into
mainfrom
fix/non-idempotent-object-store-deletes

Conversation

@waynr

@waynr waynr commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

This PR addresses an idempotency issue in TableIndexCache object deletion retries, where deletes were retried repeatedly even if the error encountered is NotFound, which should be gracefully ignored when a delete is attempted.

To do this, I've cherry-picked a new crate from the enterprise fork called object_store_utils, which includes an extension trait called RetryableObjectStore that encodes ignoring NotFound errors into its deletion methods as a matter of convention.

waynr and others added 2 commits September 25, 2025 10:19
* Add object store retries via `RetryableObjectStore`
  - This is an extension trait, which is needed since we want to provide an
    opt-in approach to retries that takes parameters not supported by the
    `ObjectStore` trait methods themselves (ie retry params, context string for
    error notifications).
  - Supports idempotent object store deletes by ignoring `NotFound` errors.
* Add object store failure injection via `TestObjectStore`
  - This is a wrapper implementation of `ObjectStore`.
  - It gives us various ways of injecting errors in tests (periodic, one time,
    percentage-based, etc).
  - It gives us the ability to count and assert on actual calls made.
* Validate `RetryableObjectStore` using `TestObjectStore`.

@hiltontj hiltontj left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Need to fix the 📎 error but otherwise LGTM

@waynr
waynr force-pushed the fix/non-idempotent-object-store-deletes branch from 568143c to 4e8e0a9 Compare September 25, 2025 19:26
@waynr
waynr merged commit 0a9de80 into main Sep 25, 2025
12 checks passed
@waynr
waynr deleted the fix/non-idempotent-object-store-deletes branch September 25, 2025 19:39
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