Fix negative revalidating for zero-length objects#12697
Merged
Conversation
ezelkow1
previously approved these changes
Nov 23, 2025
When negative revalidating was enabled, zero-length cached objects would fail on the second consecutive stale request with a 5xx response from the origin. The first stale request would correctly serve the cached content, but the second would return the origin's error response instead. This occurred because the cache attempted to read additional fragments for zero-length documents when the cache key didn't match the document key, causing a cache read failure (ECACHE_NO_DOC). The fix ensures zero-length documents are always treated as single-fragment, preventing attempts to read non-existent body data. Fixes: apache#6649
cb7e045 to
a68b243
Compare
ezelkow1
approved these changes
Nov 24, 2025
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.
When negative revalidating was enabled, zero-length cached objects would
fail on the second consecutive stale request with a 5xx response from
the origin. The first stale request would correctly serve the cached
content, but the second would return the origin's error response
instead. This occurred because the cache attempted to read additional
fragments for zero-length documents when the cache key didn't match the
document key, causing a cache read failure (ECACHE_NO_DOC). The fix
ensures zero-length documents are always treated as single-fragment,
preventing attempts to read non-existent body data.
Fixes: #6649