bryancall opened a new pull request, #13873:
URL: https://github.com/apache/trafficserver/pull/13873

   The `h2_active_timeout` check in the `http2` autest sends a request, sleeps 
four seconds against a three second `proxy.config.http2.active_timeout_in`, 
sends a second request, and expects the connection to be gone. ATS enforces the 
active timeout from the InactivityCop, which looks at each connection once a 
second, so the close lands anywhere from three to about four seconds in. The 
client's one second of slack is exactly one cop period. When the close slips 
past four seconds, the client reads the first stream's 200 response instead of 
the close and the gold check fails. A recent master autest failure shows 
exactly that, with the client exiting after 4.02 seconds.
   
   The client now starts its clock before it sends the connection preface, 
sends the first request, and then reads until ATS closes the connection. It 
reports `CONNECTION_TIMEOUT` only when the close comes no sooner than the 
active timeout and within 15 seconds, and otherwise says whether the connection 
stayed open or closed too early. The test passes the timeout to the client from 
the same variable that sets the record, and the gold file is unchanged.
   
   Testing, in the fedora:44 CI image under CPU load: with the cop period 
stretched to two seconds in both arms, master failed 19 of 160 runs with the CI 
signature and this change failed none. At the normal one second period, master 
failed 1 of 640 runs and this change none of 640, and the measured close times 
reached 3.96 seconds, 40 ms short of the old deadline. Disabling the active 
timeout, or setting it to one second while the client expects three, makes the 
new check fail 64 of 64 runs, so it still catches a timeout that never fires or 
fires early.
   


-- 
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]

Reply via email to