fix(relay): strip quotes from ETag before If-Match for Ceph RGW compat - #3003
Open
darox wants to merge 2 commits into
Open
fix(relay): strip quotes from ETag before If-Match for Ceph RGW compat#3003darox wants to merge 2 commits into
darox wants to merge 2 commits into
Conversation
darox
force-pushed
the
fix/ceph-rgw-if-match-quoting
branch
from
July 26, 2026 16:55
cd6e536 to
96641c5
Compare
darox
marked this pull request as draft
July 26, 2026 16:56
darox
force-pushed
the
fix/ceph-rgw-if-match-quoting
branch
from
July 27, 2026 15:35
96641c5 to
c05319e
Compare
Ceph RGW returns quoted ETags in GET responses (per RFC 7232) but rejects quoted ETags in the If-Match precondition header (returns 412), accepting only the unquoted form — non-compliant with RFC 7232. buzz-relay forwards the quoted ETag received from GET verbatim into If-Match, so every conditional-write (CAS) — including the startup S3 conformance probe — fails against a Ceph-backed bucket, and the relay CrashLoops on startup. Strip surrounding double quotes from the ETag before inserting it into If-Match. AWS S3 and MinIO accept both the quoted and unquoted forms, so this does not regress those backends. Closes block#3002 Signed-off-by: Dario Mader <maderdario@gmail.com>
darox
force-pushed
the
fix/ceph-rgw-if-match-quoting
branch
from
July 27, 2026 18:22
c05319e to
5eac6ca
Compare
darox
marked this pull request as ready for review
July 27, 2026 18:22
Co-authored-by: Phuoc (Phu) Do <91568955+dophsquare@users.noreply.github.com> Signed-off-by: Phuoc (Phu) Do <91568955+dophsquare@users.noreply.github.com> * origin/main: (84 commits) chore(ci): bump desktop smoke E2E timeout to 30 minutes (block#3409) release(chart): publish 0.1.7 (block#3393) feat(acp): steer claude-code and codex agents via _session/steering (block#3007) feat(desktop): apply WebKit rendering workarounds at startup on Linux (block#3271) fix(desktop): stabilize flaky DM expansion E2E ordering assertions (block#2004) docs(contributing): document the Linux system libraries just ci requires (block#3396) fix(desktop): paint community rail full height (block#3382) fix(acp): disable goose cron scheduler in managed agent children (block#3144) feat(desktop): add custom harness inline from agent dialogs (block#3252) chore(compose): remove stale typesense env vars (block#3332) feat(desktop): refine agent catalog sharing (block#2439) fix(desktop): keep drafts out of the Inbox All view (block#3217) docs: restructure DCO guidance into scannable subsection (block#3337) Unify mobile loading spinners (block#3314) fix(desktop): restore the inbox icon in the sidebar (block#3341) fix(desktop): gate codex-acp on a minimum supported version (block#3254) feat(cli): add users set-status command for NIP-38 profile status (block#3253) fix(composer): scope multiline block formatting (block#3246) feat(chart): add relay pod extension points (block#3322) Refine mobile attachment picking (block#3313) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Ceph RGW returns quoted ETags but rejects that form in
If-Match. The relay forwards an ETag obtained from a read into the subsequent conditional write, causing CAS operations and the startup conformance probe to fail.Fix
Remove surrounding double quotes only when setting
If-Match.If-None-Match: *is unchanged.Validation
cargo fmt --checkcargo clippy -p buzz-relay --lib -- -D warningscargo test -p buzz-relay --lib api::git::store::testsCloses #3002