Skip to content

fix(service): Filter expired objects in the S3-compatible backend#569

Open
jan-auer wants to merge 2 commits into
mainfrom
fix/s3-expired-object-filter
Open

fix(service): Filter expired objects in the S3-compatible backend#569
jan-auer wants to merge 2 commits into
mainfrom
fix/s3-expired-object-filter

Conversation

@jan-auer

@jan-auer jan-auer commented Jul 22, 2026

Copy link
Copy Markdown
Member

The GCS and BigTable backends filter out expired objects at read time — returning None when the stored expiry timestamp is in the past. The S3-compatible backend was missing this check, so TTL and TTI objects remained readable past their deadline until the storage lifecycle rule physically deleted them (up to ~48h later).

This lifts the expire_at parsing out of the TTI-only block and adds the same expiry guard before the TTI bump, matching the GCS pattern. The response body is drained before returning None to avoid connection leaks.

Ref FS-403

@jan-auer
jan-auer marked this pull request as ready for review July 22, 2026 08:59
@jan-auer
jan-auer requested a review from a team as a code owner July 22, 2026 08:59
@linear-code

linear-code Bot commented Jul 22, 2026

Copy link
Copy Markdown

FS-403

@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 45 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.46%. Comparing base (e88b7f8) to head (56d980d).

Files with missing lines Patch % Lines
objectstore-service/src/backend/s3_compatible.rs 0.00% 45 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #569      +/-   ##
==========================================
- Coverage   87.67%   87.46%   -0.22%     
==========================================
  Files          93       93              
  Lines       15113    15152      +39     
==========================================
+ Hits        13251    13252       +1     
- Misses       1862     1900      +38     
Components Coverage Δ
Rust Backend 92.14% <0.00%> (-0.31%) ⬇️
Rust Client 79.89% <ø> (ø)
Python Client 90.20% <ø> (ø)

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

1 participant