joseluisll opened a new pull request, #8720:
URL: https://github.com/apache/hadoop/pull/8720

   ### Description of PR
   
   Upgrades `maven-surefire-plugin` from 3.5.3 to 3.6.0, plus the two changes 
the new version needs.
   
   3.6.0 is the first release that registers surefire's `listener` property as 
a JUnit Platform `TestExecutionListener` (SUREFIRE-1639). Eight poms already 
carry that property for `TimedOutTestsListener`, and on 3.5.3 it does nothing 
at all. This bump is what lets HADOOP-19964's listener bind, so a timed-out 
test prints a thread dump again. Until 19964 lands the listener stays dormant — 
this change is what unblocks it.
   
   Two changes come with the bump:
   
   - **`java.net.preferIPv4Stack` moves into `maven-surefire-plugin.argLine`.** 
As a `systemPropertyVariable` it is applied only after the forked JVM has 
started. 3.6.0 initialises the fork's networking before applying those 
properties, so the flag arrives too late and the fork falls back to IPv6, 
turning 5 of 7 CI test jobs red; 3.5.3 applies them before any networking class 
loads, which is why the same configuration works there. As an argLine entry the 
flag is a real JVM startup argument and cannot be late. All the `<argLine>` 
overrides in the tree interpolate the property and maven-failsafe-plugin shares 
it, so it propagates everywhere. `hadoop-registry` carried a second copy of the 
same ineffective setting; removed.
   
   - **`hadoop-common`'s test-jar added to `hadoop-yarn-services-core` and 
`hadoop-yarn-applications-catalog-webapp`.** Both inherit the listener property 
from `hadoop-yarn` but resolve only `hadoop-common`'s main jar, so the listener 
class cannot be loaded there and surefire silently drops it.
   
   ### Known impact of 3.6.0, needs a decision
   
   3.6.0 also includes SUREFIRE-823, which **decouples `-DskipTests` from 
maven-failsafe-plugin**. On 3.5.3 `-DskipTests` skips both surefire and 
failsafe; on 3.6.0 it skips surefire only, and failsafe runs. `-DskipITs` still 
skips integration tests.
   
   For most of the tree this is invisible — `hadoop-aws`, `hadoop-azure`, 
`hadoop-gcp` and `hadoop-bos` gate their ITs on `skipITs` via the presence of 
`auth-keys.xml`, so they stay skipped. 
`hadoop-client-modules/hadoop-client-integration-tests` does not, and its 
integration tests now run under `mvn install -DskipTests`, the command in 
BUILDING.txt.
   
   This PR does not address that yet. Options are to bind failsafe's skip to 
`skipTests` in `hadoop-project`, to update BUILDING.txt and CI to pass 
`-DskipITs`, or to handle it in a follow-up JIRA. Happy to take direction from 
reviewers.
   
   ### How was this patch tested?
   
   WSL2 Ubuntu 24.04, OpenJDK 17, Maven 3.9.16. Full reactor build clean.
   
   Full suites on the modules this touches, all green: `hadoop-registry` (164 
tests), `hadoop-yarn-services-core` (145), 
`hadoop-yarn-applications-catalog-webapp` (5).
   
   `hadoop-common` full suite run against unpatched trunk at the same commit as 
a control: every failure reproduces on the baseline, and the two that did not 
pass on rerun. No new failures.
   
   The tests that fail when 3.6.0 is bumped without the argLine fix all pass: 
`TestDNS`, `TestNameNodeRpcServer`, `TestBlockRecovery2`, `TestWebHdfsTokens`, 
`TestHSAdminServer`.
   
   One reporting change to be aware of: 3.6.0 counts assumption-skipped tests 
that 3.5.3 reported as zero, which raises `hadoop-common`'s skip count by 40 
(two OpenSSL codec classes).
   
   ### For code changes:
   
   - [x] Does the title of this PR start with the corresponding JIRA issue id 
(e.g. 'HADOOP-17799. Your PR title ...')?
   - [ ] Object storage: Have the integration tests been executed and the 
endpoint declared according to the connector-specific documentation?
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   - [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`, 
`NOTICE-binary` files?
   
   ### AI Tooling
   
   If an AI tool was used:
   
   - [x] The PR includes the phrase "Contains content generated by <tool>" 
where <tool> is the name of the AI tool used.
   - [x] My use of AI contributions follows the ASF legal policy 
https://www.apache.org/legal/generative-tooling.html
   
   Contains content generated by Claude Code.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to