fix(sidecar): enable test_ddog_sidecar_register_app on Windows (APMSP-2356)#1848
Conversation
6bd5773 to
ba5ba4b
Compare
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage (details) 🔗 Commit SHA: ee8fb59 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1848 +/- ##
==========================================
+ Coverage 71.64% 71.70% +0.05%
==========================================
Files 430 430
Lines 68806 68806
==========================================
+ Hits 49297 49335 +38
+ Misses 19509 19471 -38
🚀 New features to boost your workflow:
|
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
485fe3a to
a77297a
Compare
2c29f5d to
b98b4f9
Compare
b98b4f9 to
64185b0
Compare
APMSP-2356: the tarpc refactor (#1742) introduced a PID handshake in SeqpacketConn::connect() — the blocking ReadFile waiting for the server's 4-byte PID acts as an implicit readiness barrier, eliminating the startup race that caused intermittent failures.
f990d6b to
ee8fb59
Compare
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
Problem
`test_ddog_sidecar_register_app` was suppressed on Windows with `#[ignore]` (APMSP-2356) because it was intermittently failing due to a startup race on named pipes: the parent process could call `CreateFileA` before the child sidecar had called `ConnectNamedPipe`, causing `ERROR_PIPE_BUSY`.
Root cause fix (already landed)
The tarpc refactor (#1742) introduced a PID handshake in `SeqpacketConn::connect()`: after `CreateFileA` returns, the client immediately calls `ReadFile` to receive a 4-byte server PID written by the server's `try_accept()`. That blocking `ReadFile` is an implicit readiness barrier — the parent can only proceed once the child has started its Tokio runtime, called `ConnectNamedPipe`, and written the PID. The race condition no longer exists.
The test has been validated to pass 20/20 times in Windows CI.