Stabilize PLM inherited-output regression test - #1289
Open
Richie Gomez (richiemsft) wants to merge 1 commit into
Open
Richie Gomez (richiemsft) wants to merge 1 commit into
Richie Gomez (richiemsft) wants to merge 1 commit into
Conversation
Fixes #1098 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e408b60b-e267-416c-806d-0a7e119fe53f
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Copilot started reviewing on behalf of
Richie Gomez (richiemsft)
September 26, 2026 01:04
View session
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The test-only fixture removes the reported race while preserving output-handle behavior and cleanup.
Review effort: Balanced
Findings: None
What changed in this PR
Stabilizes the Windows PLM inherited-output regression test without changing production behavior.
Changes:
- Replaces nested PowerShell processes with nonce-scoped Rust test helpers.
- Records the descendant PID before signaling readiness.
- Retains bounded execution and process-tree cleanup.
| File | Description |
|---|---|
src/host/plm/src/start.rs |
Adds deterministic parent and descendant test helpers. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
Author
This branch has not been deployed
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
Fixes the remaining flakiness in
start::tests::inherited_output_handle_cannot_block_control_completionafter #848.The previous fixture used PowerShell to start another PowerShell process, publish its PID through a temporary file, and hold inherited stdout/stderr handles open. Under CI load, the outer PowerShell could reach the 30-second control timeout before publishing the PID, causing cleanup setup to panic before the behavioral assertions ran.
This change replaces the nested PowerShell bootstrap with ignored, nonce-scoped Rust test-process helpers. The parent helper deterministically starts a bounded descendant from the already-built test executable, records its PID before signaling readiness, and exits while the descendant retains the inherited output handles. The descendant remains alive beyond the controller bound, and the existing drop guard terminates its process tree on every exit path.
No production PLM behavior changes.
🔗 References
Resolves #1098
🔍 Validation
mainand this branch.mainbaselineThe fixed fixture reduced mean runtime by approximately 32% and substantially tightened the long tail.
Additional validation:
cargo test -p plm: 227 passed, 3 ignoredcargo clippy -p plm --all-targets -- -D warningscargo fmt --all -- --check✅ Checklist
Cargo.lock, thedependency-feed-checkcheck passes (not applicable;Cargo.lockunchanged)📋 Issue Type
GitHub Actions runs the PR validation build automatically. The ADO pipeline
(
MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity with the GitHubActions build; it runs on merge to
main, and Microsoft reviewers with write access can trigger iton a PR with
/azp run. See docs/pull-requests.md.If the
dependency-feed-checkcheck fails on a new dependency, the crate must be added tothe feed before the PR can pass. See docs/pull-requests.md
for the steps.
Microsoft Reviewers: Open in CodeFlow