Skip to content

Pr/multilevel mixed rw ro - #1

Merged
geir-t merged 3 commits into
mainfrom
pr/multilevel-mixed-rw-ro
Aug 6, 2026
Merged

Pr/multilevel mixed rw ro#1
geir-t merged 3 commits into
mainfrom
pr/multilevel-mixed-rw-ro

Conversation

@geir-t

@geir-t geir-t commented Aug 6, 2026

Copy link
Copy Markdown

Takes in mozilla#2778 to fix the local cache write issue

changes version to sccache-huddly

bumps to 0.17.1

tycho and others added 3 commits August 6, 2026 14:15
MultiLevelStorage::check() started from ReadWrite and demoted the
composite to ReadOnly as soon as any level reported ReadOnly. The
server then wraps the whole storage in ReadOnlyStorage, so every cache
write is refused before any write-error policy is consulted, including
writes to writable levels and preprocessor cache updates.

That inverts the documented semantics: MultiLevel.md promises that
read-only levels are "automatically skipped during writes, regardless
of write policy", and put() already implements exactly that per-level
skipping. The practical fallout is that the documented read-only
fallback topology (fast writable local disk in front of a read-only
shared remote, e.g. SCCACHE_S3_RW_MODE=READ_ONLY or an azure SAS token
without write permission) silently stops populating the local disk
cache entirely.

Aggregate in the other direction: the composite is writable when any
level is writable, and read-only only when every level is read-only.
The existing single-level read-only test still passes; new tests cover
mixed chains in both orders and the all-read-only chain.

Fixes mozilla#2773

Signed-off-by: Steven Noonan <steven@edera.dev>
Why? Make Huddly builds identifiable from the version output while
keeping the package and binary names unchanged.
Keep the manifest and lockfile consistent so Huddly builds report the
intended release version.
@geir-t
geir-t force-pushed the pr/multilevel-mixed-rw-ro branch from fd4ef74 to abd9b57 Compare August 6, 2026 12:15
@geir-t
geir-t merged commit 777d085 into main Aug 6, 2026
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