ci: keep request replayer responsive under parallel tests - #4106
Draft
bm1549 wants to merge 2 commits into
Draft
Conversation
🎉 All green!🧪 All tests passed 🔄 Datadog auto-retried 1 job - 1 passed on retry 🎯 Code Coverage (details) 🔗 Commit SHA: fa445ce | Docs | Datadog PR Page | Give us feedback! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
High-level change and expected CI impact report
Stacked on #4097.
test_extension_ciruns as many as 12 PHPT workers against one single-threaded request-replayer. If its worker gets stuck processing a request,/replayalso blocks. The test process then waits on agent requests until the job reaches its two-hour timeout.Run request-replayer with 16 PHP CLI workers. Its file-backed queues use read-modify-write operations, so each session now has a file lock around state changes. MessagePack decoding stays outside the lock. Requests for different sessions can still run at the same time, including the un-tokened PHPT path.
The CI service gates HTTP requests until the checked-out router and lock helper are installed. The installer retries missing files and transient copy failures. UDP metrics runs under a restart loop.
This is separate from #4097: that PR splits normal and valgrind passes and raises test parallelism; this PR keeps request-replayer responsive under that parallel workload.
Verification
php:8.2-cliwith 16 workers.generate-templatesimage with one CPU and 256 MiB. Child logs use files rather than undrained pipes and are printed if the test fails.git diff --checkis clean.Reviewer checklist