[ 
https://issues.apache.org/jira/browse/HADOOP-19978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose Luis López reassigned HADOOP-19978:
----------------------------------------

    Assignee: Jose Luis López

> Upgrade maven-surefire-plugin to 3.6
> ------------------------------------
>
>                 Key: HADOOP-19978
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19978
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: common, test
>            Reporter: Jose Luis López
>            Assignee: Jose Luis López
>            Priority: Major
>              Labels: pull-request-available
>
> *Why*
> HADOOP-19964 reimplements TimedOutTestsListener as a JUnit Platform
> TestExecutionListener, so a timed-out test prints a thread dump again. The
> listener property that eight poms already carry binds only once Surefire
> accepts platform listeners - SUREFIRE-1639, shipped in maven-surefire-plugin
> 3.6.0. On 3.5.3 the property is inert, so the listener stays dormant until
> Hadoop moves to that version.
> *What the upgrade needs*
> Bumping 3.5.3 to 3.6.0 on its own turns 5 of 7 CI test jobs red: common, mr,
> hdfs-rbf, hdfs-other, hdfs-slow. Controlled against another branch built the
> same morning on the same runners with 3.5.3, which was 7/7 green. Every
> failure is one fault - the forked JVM preferring IPv6, e.g.
> TestNameNodeRpcServer.testNamenodeRpcBindAny expected <0.0.0.0> but was
> <0:0:0:0:0:0:0:0>.
> hadoop-project.xml sets java.net.preferIPv4Stack in surefire's
> systemPropertyVariables. Those are applied by the forked booter once the JVM
> is already running, never as -D at startup. 3.6.0 initialises the fork's
> networking before applying them, so the flag is read too late; 3.5.3 applies
> them before any networking class loads, which is why the same configuration
> works there. No property-based fix can work.
> *Changes*
>  # maven-surefire-plugin.version to 3.6.0.
>  # Move -Djava.net.preferIPv4Stack=true into maven-surefire-plugin.argLine,
> where it is a real JVM startup argument. All 22 argLine overrides interpolate
> that property and maven-failsafe-plugin shares it, so it propagates
> everywhere. Drop hadoop-registry's duplicate copy of the same ineffective
> systemPropertyVariable.
>  # Add hadoop-common's test-jar in test scope 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 Surefire
> cannot load the listener class and silently drops it.
> *Also in 3.6.0*
> SUREFIRE-823 decouples -DskipTests from maven-failsafe-plugin: -DskipTests no
> longer skips integration tests, only -DskipITs does.
> hadoop-client-integration-tests relies on -DskipTests alone, so its ITs now
> run under "mvn install -DskipTests". The cloud connectors gate on skipITs and
> are unaffected. To be fixed here or in a follow-up.
> The legacy surefire-junit3/junit4/junit47/testng providers are removed in
> 3.6.0. Hadoop has no JUnit 4 or TestNG tests, so this does not apply.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to