Skip to content

fix(libdd-ipc): add missing Win32_System_WindowsProgramming windows-sys feature - #2663

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
vianney/fix-ipc-windows-feature-flag
Oct 13, 2026
Merged

gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
vianney/fix-ipc-windows-feature-flag

Conversation

@VianneyRuhlmann

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds the missing Win32_System_WindowsProgramming feature to the windows-sys dependency in libdd-ipc/Cargo.toml, which gates FILE_SKIP_COMPLETION_PORT_ON_SUCCESS (imported in src/platform/windows/sockets/writer.rs).

Motivation

Standalone (non-workspace) builds of libdd-ipc fail on Windows with unresolved import windows_sys::Win32::System::WindowsProgramming (E0432). The feature was dropped during the windows-sys 0.48 → 0.52 migration in #2569 while the import remained. CI never caught it because mio 1.0.2 in the workspace lockfile accidentally enables the feature via unification — downstream lockfiles (e.g. dd-trace-py) that resolve mio to a version using windows-sys 0.61 get no such rescue and all Windows wheels fail.

Additional Notes

Audited all other windows_sys imports in libdd-ipc/src — every remaining module maps to an already-declared feature.

How to test the change?

Verified with an isolated consumer crate (fresh lockfile where mio resolves to windows-sys 0.61.2): cargo tree -i windows-sys@0.52.0 -e features --target x86_64-pc-windows-msvc now shows Win32_System_WindowsProgramming flowing solely from libdd-ipc. On a Windows runner, cargo check -p libdd-ipc --target x86_64-pc-windows-msvc should pass.

@VianneyRuhlmann VianneyRuhlmann added the AI Generated PR largely written by AI tools label Oct 13, 2026
@VianneyRuhlmann
VianneyRuhlmann marked this pull request as ready for review October 13, 2026 11:03
@VianneyRuhlmann
VianneyRuhlmann requested review from a team as code owners October 13, 2026 11:03

@bwoebi bwoebi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching!

@pr-commenter

pr-commenter Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Benchmarks

Comparison

Benchmark execution time: 2026-10-13 11:09:39

Comparing candidate commit c60a104 in PR branch vianney/fix-ipc-windows-feature-flag with baseline commit 2416f4f in branch main.

📊 Benchmarking dashboard

Found 0 performance improvements and 0 performance regressions! Performance is the same for 2 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c60a104 1791889328 vianney/fix-ipc-windows-feature-flag
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.077µs 1.092µs ± 0.005µs 1.092µs ± 0.001µs 1.094µs 1.098µs 1.107µs 1.126µs 3.12% 2.798 18.774 0.44% 0.000µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [1.092µs; 1.093µs] or [-0.061%; +0.061%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c60a104 1791889328 vianney/fix-ipc-windows-feature-flag
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 14.947µs 15.367µs ± 0.214µs 15.340µs ± 0.156µs 15.514µs 15.706µs 15.903µs 16.166µs 5.38% 0.505 0.229 1.39% 0.015µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [15.337µs; 15.396µs] or [-0.193%; +0.193%] None None None

Baseline

Baseline benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2416f4f 1791883056 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.059µs 1.071µs ± 0.004µs 1.072µs ± 0.002µs 1.074µs 1.075µs 1.081µs 1.088µs 1.43% -0.167 1.637 0.38% 0.000µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [1.071µs; 1.072µs] or [-0.052%; +0.052%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2416f4f 1791883056 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 15.335µs 15.671µs ± 0.294µs 15.585µs ± 0.101µs 15.741µs 16.229µs 16.476µs 17.888µs 14.78% 3.238 17.028 1.87% 0.021µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [15.631µs; 15.712µs] or [-0.260%; +0.260%] None None None

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T11:06:13.078476Z c60a104 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Tests

✅ All CI checks and tests passed.

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
• Patch Coverage: 100.00%
• Overall Coverage: 81.51% (+0.02%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: c60a104 | Docs | View more details | Give us feedback!

@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot merged commit dda7a8b into main Oct 13, 2026
140 checks passed
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the vianney/fix-ipc-windows-feature-flag branch October 13, 2026 12:08
VianneyRuhlmann added a commit that referenced this pull request Oct 13, 2026
…ys feature (#2663) (#2668)

Backport of #2663 

# What does this PR do?

Adds the missing `Win32_System_WindowsProgramming` feature to the
`windows-sys` dependency in `libdd-ipc/Cargo.toml`, which gates
`FILE_SKIP_COMPLETION_PORT_ON_SUCCESS` (imported in
`src/platform/windows/sockets/writer.rs`).

# Motivation

Standalone (non-workspace) builds of `libdd-ipc` fail on Windows with
`unresolved import windows_sys::Win32::System::WindowsProgramming`
(E0432). The feature was dropped during the windows-sys 0.48 → 0.52
migration in #2569 while the import remained. CI never caught it because
mio 1.0.2 in the workspace lockfile accidentally enables the feature via
unification — downstream lockfiles (e.g. dd-trace-py) that resolve mio
to a version using windows-sys 0.61 get no such rescue and all Windows
wheels fail.

# Additional Notes

Audited all other `windows_sys` imports in `libdd-ipc/src` — every
remaining module maps to an already-declared feature.

# How to test the change?

Verified with an isolated consumer crate (fresh lockfile where mio
resolves to windows-sys 0.61.2): `cargo tree -i windows-sys@0.52.0 -e
features --target x86_64-pc-windows-msvc` now shows
`Win32_System_WindowsProgramming` flowing solely from `libdd-ipc`. On a
Windows runner, `cargo check -p libdd-ipc --target
x86_64-pc-windows-msvc` should pass.


Co-authored-by: vianney.ruhlmann <vianney.ruhlmann@datadoghq.com>

# What does this PR do?

A brief description of the change being made with this pull request.

# Motivation

What inspired you to submit this pull request?

# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

Describe here in detail how the change can be validated.
VianneyRuhlmann added a commit that referenced this pull request Oct 13, 2026
…ys feature (#2663)

# What does this PR do?

Adds the missing `Win32_System_WindowsProgramming` feature to the `windows-sys` dependency in `libdd-ipc/Cargo.toml`, which gates `FILE_SKIP_COMPLETION_PORT_ON_SUCCESS` (imported in `src/platform/windows/sockets/writer.rs`).

# Motivation

Standalone (non-workspace) builds of `libdd-ipc` fail on Windows with `unresolved import windows_sys::Win32::System::WindowsProgramming` (E0432). The feature was dropped during the windows-sys 0.48 → 0.52 migration in #2569 while the import remained. CI never caught it because mio 1.0.2 in the workspace lockfile accidentally enables the feature via unification — downstream lockfiles (e.g. dd-trace-py) that resolve mio to a version using windows-sys 0.61 get no such rescue and all Windows wheels fail.

# Additional Notes

Audited all other `windows_sys` imports in `libdd-ipc/src` — every remaining module maps to an already-declared feature.

# How to test the change?

Verified with an isolated consumer crate (fresh lockfile where mio resolves to windows-sys 0.61.2): `cargo tree -i windows-sys@0.52.0 -e features --target x86_64-pc-windows-msvc` now shows `Win32_System_WindowsProgramming` flowing solely from `libdd-ipc`. On a Windows runner, `cargo check -p libdd-ipc --target x86_64-pc-windows-msvc` should pass.


Co-authored-by: vianney.ruhlmann <vianney.ruhlmann@datadoghq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Generated PR largely written by AI tools mergequeue-status: done

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants