Surface failing crossgen2 comparison dlls in the Helix work item file list#129605
Merged
Conversation
Co-authored-by: jtschuster <36744439+jtschuster@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Improve diagnosability of Crossgen2 comparison job failures
Improve diagnosability of Crossgen2 comparison job failures
Jun 19, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves diagnosability for Crossgen2 comparison failures in Helix by copying the produced native/ReadyToRun images for failing assemblies into HELIX_DUMP_FOLDER, ensuring the lab infrastructure reliably uploads the artifacts for offline investigation.
Changes:
- Added a
copy_artifacts_to_dump_folderhelper that copies*.ni.dlloutputs (when present) from both base and diff result directories into the Helix dump folder. - Invoked artifact copying from
compare_resultsfor mismatch/return-code failures and for “omitted from base/diff” failure modes (NativeOrReadyToRunImage only). - Made the behavior a no-op when
HELIX_DUMP_FOLDERis unset and resilient to I/O errors (caught and logged).
jtschuster
reviewed
Jun 19, 2026
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: jtschuster <36744439+jtschuster@users.noreply.github.com>
3 tasks
Co-authored-by: jtschuster <36744439+jtschuster@users.noreply.github.com>
Copilot
AI
changed the title
Improve diagnosability of Crossgen2 comparison job failures
Surface failing crossgen2 comparison dlls in the Helix work item file list
Jun 29, 2026
Member
|
/azp run runtime-coreclr crossgen2 outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
davidwrighton
approved these changes
Jun 30, 2026
jtschuster
enabled auto-merge (squash)
June 30, 2026 23:45
Member
|
/ba-g unrelated timeout |
eiriktsarpalis
pushed a commit
that referenced
this pull request
Jul 15, 2026
… list (#129605) When the crossgen2 comparison test fails, the base/diff `.ni.dll` artifacts were copied to `HELIX_DUMP_FOLDER`, which is only surfaced when crash dumps exist — making the dlls hard to find from a failing test. ### Changes (`src/tests/Common/scripts/crossgen2_comparison.py`) - Renamed `copy_artifacts_to_dump_folder` → `copy_artifacts_to_upload_root` and switched the destination from `HELIX_DUMP_FOLDER` to `HELIX_WORKITEM_UPLOAD_ROOT`, so artifacts land in the work item's always-visible Files list. - The function now returns the uploaded basenames (`base_*.ni.dll`, `diff_*.ni.dll`). - On a mismatch, the failing test's `<output>` is augmented to name the uploaded files, so the AzDO Tests-tab failure text points directly at what to download. - Preserved the path-traversal guard on the JSON-sourced `assembly_name`, per-file existence checks, and `OSError` handling (now returning `[]` so the message degrades gracefully). --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jtschuster <36744439+jtschuster@users.noreply.github.com>
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.
When the crossgen2 comparison test fails, the base/diff
.ni.dllartifacts were copied toHELIX_DUMP_FOLDER, which is only surfaced when crash dumps exist — making the dlls hard to find from a failing test.Changes (
src/tests/Common/scripts/crossgen2_comparison.py)copy_artifacts_to_dump_folder→copy_artifacts_to_upload_rootand switched the destination fromHELIX_DUMP_FOLDERtoHELIX_WORKITEM_UPLOAD_ROOT, so artifacts land in the work item's always-visible Files list.base_*.ni.dll,diff_*.ni.dll).<output>is augmented to name the uploaded files, so the AzDO Tests-tab failure text points directly at what to download.assembly_name, per-file existence checks, andOSErrorhandling (now returning[]so the message degrades gracefully).The
<message>text is unchanged; only<output>gains the file list.Note for review
The diff
.ni.dllalready exists underHELIX_WORKITEM_UPLOAD_ROOT(written there asresult_dir), so thediff_-prefixed copy is a small duplication. It's kept sobase_/diff_sit side-by-side with matching names for comparison — open to dropping it to save upload size.