HADOOP-19950. Capture surefire diagnostics on fork timeout in CI - #8651
Open
pan3793 wants to merge 1 commit into
Open
HADOOP-19950. Capture surefire diagnostics on fork timeout in CI#8651pan3793 wants to merge 1 commit into
pan3793 wants to merge 1 commit into
Conversation
6 tasks
There was a problem hiding this comment.
Pull request overview
This PR improves CI diagnostics for hung Maven Surefire forks by adding a forced-exit grace window and by expanding the GitHub Actions artifact upload globs to actually include Surefire reports and dumpstreams/thread dumps.
Changes:
- Add
forkedProcessExitTimeoutInSeconds(60s) to the root Surefire configuration to force-kill stuck forks after the existing timeout triggers. - Expand CI artifact upload paths to capture nested
target/**/*.logand fulltarget/surefire-reports/**contents (includingTEST-*.xml,*.dump,*.dumpstream).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
hadoop-project/pom.xml |
Adds a Surefire exit-timeout property and wires it into the global Surefire plugin configuration to produce better diagnostics on fork timeouts. |
.github/workflows/tmpl_build_and_test.yml |
Updates failure-only artifact globs to include full Surefire reports/dumps needed to debug fork hangs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
💔 -1 overall
This message was automatically generated. |
Set forkedProcessExitTimeoutInSeconds so surefire force-kills hung forks after a 60s grace window and writes the dumpstream naming the non-daemon thread keeping the fork alive. Expand the test-logs artifact to cover surefire-reports/ (TEST-*.xml, *.dump, *.dumpstream) and nested .log files, which the previous *.log/*.xml globs missed. Assisted-by: GLM 5.2
ajfabbri
approved these changes
Aug 3, 2026
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 of PR
Set
forkedProcessExitTimeoutInSeconds(60s) in the root surefireconfiguration so that a hung fork is force-killed after a grace window
and surefire writes the dumpstream (thread dump) naming the non-daemon
thread keeping the fork alive. Without this, the only signal is a
generic "timeout in the fork" error.
Expand the test-logs artifact upload globs from:
to:
The original globs only matched files directly under
target/(
site.xml,plugin-enhanced.xml), missing the actual test reports andthread dumps in nested directories. The new globs capture
TEST-*.xml,*.dump, and*.dumpstreamsurefire output needed to diagnose forkhangs.
How was this patch tested?
Verified via GitHub Actions CI on a fork branch. With the previous
globs, the uploaded artifact was 7KB (2 incidental files). With the new
globs, the artifact is ~112MB and contains the full
surefire-reports/directory, including the
*.dumpthread dump that named the culprittest keeping a fork alive.
For code changes:
LICENSE,LICENSE-binary,NOTICE-binaryfiles?AI Tooling
If an AI tool was used:
<tool>"where
<tool>is the name of the AI tool used.https://www.apache.org/legal/generative-tooling.html
Contains content generated by GLM 5.2