cmcfarlen opened a new pull request, #14011:
URL: https://github.com/apache/trafficserver/pull/14011
`test_rate_limit_sni_queue` and `test_rate_limit_sni_expiry` fail
intermittently under parallel load. They time out waiting for `Queueing the VC`
/ `too old` in `traffic.out`.
Both client scripts start the connection that holds the single slot with
`${OSSL} <"$fifo" &` and then immediately run `rm -rf "$fifo_dir"`. The
`<"$fifo"` redirection happens in the forked child, so the parent can delete
the FIFO before the child opens it. When that happens, `openssl` never starts
and nothing holds the slot. Every later connection gets a free slot and
releases it about 2 ms later, nothing is queued, and the expected log line
never appears. In a failing run, the only two CLIENT_HELLOs in each log are
exactly as far apart as steps 2 and 5 of the script (4 s for the queue test, 5
s for the expiry test), which shows the step 1 holder never connected.
This change removes the FIFO on exit instead. Launch order is unchanged, so
the holder still doesn't inherit fd 3 and still gets EOF when the script closes
fd 3.
This only affects 10.2.x. The master versions of these scripts open the FIFO
before launching any client, so they don't have this race.
Tested by running `-k rate_limit` in parallel 5 times: 12/12 passed each
time.
--
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]