bryancall opened a new pull request, #13869: URL: https://github.com/apache/trafficserver/pull/13869
`proxy_serve_stale_dns_fail` asked each proxy for a stale copy 7 seconds after pushing it, under a single 15 second stale limit, so the "serves stale" responses had only 8 seconds of headroom. When a CI agent stalls longer than that, the proxy correctly answers `500 Cannot find server` instead of the expected 200 and the gold file mismatches. That is the failure CI has been hitting on busy agents, where the test's proxies ran about 70 seconds against a usual 56. This gives the two kinds of checks their own stale window. The proxies now allow 300 seconds, so a late request can no longer turn a "serves stale" response into a 500. The requests that expect a copy to be too old send `X-Stale-Window: narrow`, and a `header_rewrite` `set-config` rule shrinks `proxy.config.http.cache.max_stale_age` to one second for that request only, so lateness only makes those responses more certain. Every request still reads the same cached copy, so the child's second request still checks that a copy rewritten by negative revalidation expires by its max-age. The 17 second waits go away, and the test drops from about 56 seconds to about 29. Testing, in the fedora:44 CI image: pausing the test for 20 seconds mid-run fails master with the CI signature and passes this change, which also passes a 60 second pause. Widening the narrow window, shrinking the wide one, or dropping the wait before the child's second request each make the new test fail, so every check still discriminates. Repeated runs under heavy CPU and IO load passed every time, on two hosts, and under ASAN, UBSAN and TSAN builds. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
