Hi Joe,

Thanks for catching this. I reproduced the failure and traced it to a race
between the first response completing and the cache entry being committed,
unrelated to the Cache-Control parsing change.

I've opened PR #864 <https://github.com/apache/httpd/pull/864> to address
the test flakiness. The fix has been validated locally, including the proxy
test suite.

Regards,

Arturo


On Tue, Oct 20, 2026 at 11:35 AM Joe Orton <[email protected]> wrote:

> On Mon, Oct 19, 2026 at 10:04:36AM -0000, [email protected] wrote:
> > Author: abernal
> > Date: Mon Oct 19 10:04:36 2026
> > New Revision: 1939267
> >
> > Log:
> > mod_cache: Parse comma separated Cache-Control directives again.
> >
> > cache_strqtok() did not end a token at a comma or whitespace unless an
> > argument followed, so "private, no-store" was read as one token and the
> > response was stored. Stop at any non-token character, after the '='
> > test.
> >
> > This is a trunk-only regression from r1856507, which rewrote the
> > tokenizer as a state machine and dropped the T_HTTP_TOKEN_STOP check in
> > the token state that r1856493 and r1856500 still had.
>
> This one has tripped on Windows in this build -
>
> https://github.com/apache/httpd/actions/runs/39301887856/job/118228919357#step:11:1375
>
> FAILED
> modules/proxy/test_07_cache_control.py::TestCacheControl::test_proxy_07_002[17]
> - AssertionError: Cache-Control: public, s-maxage=60 not cached
> assert 2 == 1
>  +  where 2 = backend_hits(17)
>  +    where backend_hits =
> <modules.proxy.test_07_cache_control.TestCacheControl object at
> 0x0000017B8F932960>.backend_hits
> !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures
> !!!!!!!!!!!!!!!!!!!!!!!!!!
>
> Regards, Joe
>

Reply via email to