https://bz.apache.org/bugzilla/show_bug.cgi?id=69580

--- Comment #5 from Jeff W <apa...@wheelhouse.org> ---
In addition to the requested trace (attached previously), I can provide some
additional context.

This issue occurs when mod_cache is enabled. The max-age=0 header causes the
cache to be bypassed for the request, but allows it to be freshened by the
response.

The problem only occurs if that happens. It does not occur if the object is not
cached at the time of request.

The issue is avoided if "Cache-control: no-cache" is used in place of
max-age=0. In that case, mod_cache does not attempt to update the cached
entity.

If no Cache-Control: header is present, I am able to provoke the issue if the
object is cached but stale (and is therefore updated by the request), but not
when the object is fresh.

To the best of my ability to determine, all mod_cache processing completes
successfully. The mod_cache trace output for such a request is quite short.
With trimmed boilerplate:

cache_storage.c(659): AH00698: cache: Key for entity /styles/main.css?(null) is
https://www.sr20-forum.com:443/styles/main.css?
cache_util.c(774): AH00782: Cache lock obtained for stale cached URL,
revalidating entry: /styles/main.css
cache_storage.c(357): AH00695: Cached response for /styles/main.css isn't
fresh. Adding conditional request headers.
mod_cache.c(505): AH00757: Adding CACHE_SAVE filter for /styles/main.css
mod_cache.c(528): AH00758: Replacing CACHE with CACHE_SAVE filter for
/styles/main.css
mod_cache.c(539): AH00759: Adding CACHE_REMOVE_URL filter for /styles/main.css
mod_cache.c(1349): AH00769: cache: Caching url
https://www.sr20-forum.com:443/styles/main.css? for request /styles/main.css
mod_cache.c(1356): AH00770: cache: Removing CACHE_REMOVE_URL filter.
mod_cache.c(1581): AH02971: cache: serving /styles/main.css (revalidated)

When the problem occurs, the cached object is successfully freshened. 
Subsequent requests without a Cache-Control: header receive an Age: header
reflecting the time since the request that produced the closed stream.

Once the object is cached, this issue occurs anytime the cached object would
freshened by the request. It does not matter if the cached object is fresh or
stale at the time of the request, only that it is present and that the request
causes it to be freshened.

The issue does not occur if HTTP/1.1 is forced:

$ curl --http1.1 -H 'Cache-Control: max-age=0' -H 'If-Modified-Since: "Sat, 19
Aug 2017 15:41:18 GMT"' --resolve www.sr20-forum.com:443:204.13.89.69 -i
https://www.sr20-forum.com/styles/main.css 
HTTP/1.1 304 Not Modified
Date: Thu, 13 Feb 2025 00:37:53 GMT
Server: Apache
ETag: "2150-5571d13a36989"
Accept-Ranges: bytes
Vary: Accept-Encoding
Via: e15s

$

TLDR: The issue appears to be some sort of interaction between mod_cache and
mod_http2 when existing cached objects are freshened.

Hope this helps!

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to