[ 
https://issues.apache.org/jira/browse/HADOOP-19972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18135939#comment-18135939
 ] 

ASF GitHub Bot commented on HADOOP-19972:
-----------------------------------------

hadoop-yetus commented on PR #8704:
URL: https://github.com/apache/hadoop/pull/8704#issuecomment-6549553019

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |:----:|----------:|--------:|:--------:|:-------:|
   | +0 :ok: |  reexec  |   0m 53s |  |  Docker mode activated.  |
   |||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  2s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  xmllint  |   0m  0s |  |  xmllint was not available.  |
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  test4tests  |   0m  0s |  |  The patch appears to 
include 50 new or modified test files.  |
   |||| _ trunk Compile Tests _ |
   | +0 :ok: |  mvndep  |   2m 25s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |  54m 33s |  |  trunk passed  |
   | +1 :green_heart: |  compile  |  18m 10s |  |  trunk passed with JDK 
Ubuntu-21.0.12.1+1-1-24.04.4-Ubuntu  |
   | +1 :green_heart: |  compile  |  18m 46s |  |  trunk passed with JDK 
Ubuntu-17.0.20.1+1-1-24.04-Ubuntu  |
   | +1 :green_heart: |  checkstyle  |   6m  4s |  |  trunk passed  |
   | +1 :green_heart: |  mvnsite  |  20m 38s |  |  trunk passed  |
   | +1 :green_heart: |  javadoc  |   9m 47s |  |  trunk passed with JDK 
Ubuntu-21.0.12.1+1-1-24.04.4-Ubuntu  |
   | +1 :green_heart: |  javadoc  |   9m 58s |  |  trunk passed with JDK 
Ubuntu-17.0.20.1+1-1-24.04-Ubuntu  |
   | +0 :ok: |  spotbugs  |   0m 23s |  |  branch/hadoop-project no spotbugs 
output file (spotbugsXml.xml)  |
   | -1 :x: |  spotbugs  |  38m 29s | 
[/branch-spotbugs-root-warnings.html](https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8704/27/artifact/out/branch-spotbugs-root-warnings.html)
 |  root in trunk has 80 extant spotbugs warnings.  |
   | +0 :ok: |  spotbugs  |   0m 33s |  |  
branch/hadoop-client-modules/hadoop-client-minicluster no spotbugs output file 
(spotbugsXml.xml)  |
   | +0 :ok: |  spotbugs  |   0m 30s |  |  
branch/hadoop-client-modules/hadoop-client-runtime no spotbugs output file 
(spotbugsXml.xml)  |
   | +1 :green_heart: |  shadedclient  |  33m 43s |  |  branch has no errors 
when building and testing our client artifacts.  |
   |||| _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 54s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |  79m 50s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |  18m 25s |  |  the patch passed with JDK 
Ubuntu-21.0.12.1+1-1-24.04.4-Ubuntu  |
   | +1 :green_heart: |  javac  |  18m 25s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |  18m 47s |  |  the patch passed with JDK 
Ubuntu-17.0.20.1+1-1-24.04-Ubuntu  |
   | +1 :green_heart: |  javac  |  18m 47s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   6m 11s | 
[/results-checkstyle-root.txt](https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8704/27/artifact/out/results-checkstyle-root.txt)
 |  root: The patch generated 1 new + 1010 unchanged - 1 fixed = 1011 total 
(was 1011)  |
   | +1 :green_heart: |  mvnsite  |  21m 52s |  |  the patch passed  |
   | +1 :green_heart: |  shellcheck  |   0m  0s |  |  No new issues.  |
   | +1 :green_heart: |  javadoc  |  10m 20s |  |  the patch passed with JDK 
Ubuntu-21.0.12.1+1-1-24.04.4-Ubuntu  |
   | +1 :green_heart: |  javadoc  |  10m  8s |  |  the patch passed with JDK 
Ubuntu-17.0.20.1+1-1-24.04-Ubuntu  |
   | +0 :ok: |  spotbugs  |   0m 21s |  |  hadoop-project has no data from 
spotbugs  |
   | +0 :ok: |  spotbugs  |   0m 26s |  |  
hadoop-client-modules/hadoop-client-runtime has no data from spotbugs  |
   | +0 :ok: |  spotbugs  |   0m 29s |  |  
hadoop-client-modules/hadoop-client-minicluster has no data from spotbugs  |
   | +1 :green_heart: |  shadedclient  |  77m 41s |  |  patch has no errors 
when building and testing our client artifacts.  |
   |||| _ Other Tests _ |
   | -1 :x: |  unit  | 879m  2s | 
[/patch-unit-root.txt](https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8704/27/artifact/out/patch-unit-root.txt)
 |  root in the patch passed.  |
   | +1 :green_heart: |  asflicense  |   2m  2s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   | 1444m 49s |  |  |
   
   
   | Reason | Tests |
   |-------:|:------|
   | Failed junit tests | hadoop.http.TestSSLHttpServerMTLS |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | ClientAPI=1.56 ServerAPI=1.56 base: 
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8704/27/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/8704 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient codespell detsecrets xmllint spotbugs checkstyle 
shellcheck shelldocs |
   | uname | Linux 9aec7d4e1897 5.15.0-198-generic #208-Ubuntu SMP Fri Sep 4 
10:22:38 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/bin/hadoop.sh |
   | git revision | trunk / 907cfc03d9aea252e7378a72dd76a531a554572d |
   | Default Java | Ubuntu-17.0.20.1+1-1-24.04-Ubuntu |
   | Multi-JDK versions | 
/usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.12.1+1-1-24.04.4-Ubuntu 
/usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.20.1+1-1-24.04-Ubuntu |
   |  Test Results | 
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8704/27/testReport/ |
   | Max. process+thread count | 3506 (vs. ulimit of 10000) |
   | modules | C: hadoop-project hadoop-common-project/hadoop-auth 
hadoop-common-project/hadoop-auth-examples hadoop-common-project/hadoop-common 
hadoop-common-project/hadoop-nfs hadoop-common-project/hadoop-kms 
hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs 
hadoop-hdfs-project/hadoop-hdfs-httpfs hadoop-hdfs-project/hadoop-hdfs-nfs 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice
 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice
 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager
 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager
 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client 
hadoop-mapreduce-project/hadoop-mapreduce-client 
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-shuffle
 hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app 
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs 
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient
 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase-tests
 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator
 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-api
 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp
 hadoop-mapreduce-project/hadoop-mapreduce-examples hadoop-tools/hadoop-sls 
hadoop-tools/hadoop-resourceestimator 
hadoop-client-modules/hadoop-client-runtime 
hadoop-client-modules/hadoop-client-minicluster . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8704/27/console |
   | versions | git=2.43.0 maven=3.9.15 spotbugs=4.9.7 shellcheck=0.9.0 |
   | Powered by | Apache Yetus 0.14.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   




> Upgrade to Jetty 12 ee8
> -----------------------
>
>                 Key: HADOOP-19972
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19972
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: build, common
>            Reporter: Jose Luis López
>            Assignee: Jose Luis López
>            Priority: Major
>              Labels: pull-request-available
>
> Move Hadoop's web servers from Jetty 9.4.58 to Jetty 12.1.14 on the ee8 
> environment, keeping {{javax.servlet}}. This issue is the port only: 
> everything that also works on Jetty 9.4 lands first, in the issues under 
> *Depends on*.
> *Scope*:
> * hadoop-project/pom.xml: set jetty.version to 12.1.14. Replace the managed 
> jetty-servlet, jetty-webapp, javax-websocket-server-impl and websocket-client 
> with jetty-ee8-nested, jetty-ee8-servlet, jetty-ee8-webapp, 
> jetty-ee8-websocket-jetty-server (excluding jetty-ee8-annotations, which 
> brings the banned asm) and jetty-ee8-websocket-jetty-client. Drop 
> jetty-servlet-tester, which nothing uses.
> * Rename the Jetty entries in the module poms: hadoop-auth, hadoop-common, 
> hadoop-kms, hadoop-hdfs-httpfs, hadoop-yarn-client, hadoop-yarn-common, 
> hadoop-yarn-services-api, the ApplicationHistoryServer, the NodeManager, the 
> ResourceManager, the Router and timelineservice-hbase-tests. hadoop-sls also 
> declares jetty-ee8-nested, and the NodeManager declares the WebSocket client 
> for its tests.
> * hadoop-client-runtime and hadoop-client-minicluster: replace the Jetty 9.4 
> coordinates in the exclusions and filters with the ee8 and 
> jetty-websocket-core ones. The jetty-util exclusions of HADOOP-20014 stay.
> * LICENSE-binary and NOTICE-binary: the Jetty 12.1.14 artifacts in place of 
> the 9.4 ones; drop javax.websocket-api.
> * HttpServer2: ee8 classes; Handler.Sequence in place of HandlerCollection; 
> Server#setRequestLog in place of RequestLogHandler; a core handler for 
> addHandlerAtFront; a /logs context that starts when hadoop.log.dir is 
> missing; a connector that can reopen a closed listener; the two settings 
> below.
> * HttpServer2Metrics: read Jetty 12's handle counters, convert nanoseconds to 
> milliseconds, publish the five async metrics as 0.
> * Import changes to ee8 in the common servlets, McpHttpServer, 
> ApplicationHistoryServer, ResourceManager, Router, ApiServerWebApp, SLSWebApp 
> and the tests.
> * WebSocket: the client and NodeManager move to the ee8 WebSocket API. 
> WebApps.Builder gets withServerConfigurer, so the NodeManager can install the 
> WebSocket components before its context starts.
> * The YARN application catalog, only if it is still in the tree: exclude the 
> ee8 artifacts from its four Hadoop dependencies, so its war keeps Jetty 9.4.
> * Tests: TestHttpServer, TestHttpServer2Metrics, TestSSLHttpServer, 
> TestPseudoAuthenticator, TestCheckpoint and TestNMContainerWebSocket follow 
> Jetty 12's behaviour.
> *Why*: Jetty 9.4 is end of life and its CVEs get no open-source fix 
> (HADOOP-19910). Jetty 10 and 11 are end of life too, and Jetty 11 and later 
> otherwise require {{jakarta.servlet}}. Jetty 12's ee8 environment still 
> serves {{javax.servlet}}, so Hadoop reaches a supported Jetty without the 
> namespace break. ee8 is a stage, not the destination: the port to Jetty 12's 
> API happens here once, and HADOOP-19395 is then only the namespace change.
> *Incompatible changes*. The reason phrase alone makes this incompatible. This 
> is the release note:
> # *No custom HTTP reason phrase.* The phrase is always the standard text for 
> the status: "Unauthorized", not "Authentication required". Since 
> HADOOP-20003, HADOOP-20004 and HADOOP-20005 the message is also in the 
> response body, and this release's clients read it there. A client that reads 
> only the phrase loses the message, and an older KMS client no longer 
> re-authenticates on a 403 from the KMS, because it matches "Invalid 
> signature" and "Anonymous requests are disallowed" against the phrase.
> # *Stricter URI parsing.* {{%2F}}, {{%2E}} segments and malformed encodings 
> are refused with 400. {{hadoop.http.uri.compliance.violations}} controls what 
> is allowed through; adding {{AMBIGUOUS_PATH_SEPARATOR}} accepts {{%2F}} 
> again. The default keeps paths that Hadoop needs, and 
> {{SUSPICIOUS_PATH_CHARACTERS}} in it also admits the encoded control 
> characters {{%00}}, {{%09}}, {{%0A}}, {{%0D}} and {{%7F}}, as Jetty 9.4 did.
> # *TLS renegotiation is refused.* A client's TLS 1.2 renegotiation closes the 
> connection. {{hadoop.http.ssl.renegotiation.allowed=true}} restores 9.4's 
> behaviour.
> # *Metrics.* The five async HTTP metrics read 0, because Jetty 12 cannot 
> count them. The {{dispatched*}} metrics now read Jetty 12's handle counters. 
> All names, and the milliseconds, are unchanged.
> # *A response shorter than its Content-Length fails in the server.* The 
> servlet's write fails instead of a truncated body reaching the client, so the 
> error is reported on the other side: a short fsimage transfer now fails on 
> the NameNode.
> # *Jetty's own output differs:* the error-page markup, {{charset=utf-8}} and 
> {{Vary}} on static files, a {{Date}} header on error responses, the default 
> acceptor count, and a context path without its trailing slash answering 301 
> with a relative {{Location}} where 9.4 sent 302 with an absolute one.
> # *Internal API and dependencies.* {{InterfaceAudience.Private}} and 
> {{LimitedPrivate}} classes that name Jetty types now name the ee8 ones: 
> {{HttpServer2}} ({{addContext}}, {{defineFilter}}, {{getWebAppContext}}, 
> {{addDefaultApps}}), {{WebApps}} and {{ContainerShellWebSocket}}. 
> {{addHandlerAtFront}} takes a core handler, so an ee8 context goes through 
> {{getCoreContextHandler()}}. Code calling these must be rebuilt. Jetty's 
> artifacts move to {{org.eclipse.jetty.ee8}}, so downstream exclusions need 
> the new coordinates. Public {{javax.servlet}} extension points do not change; 
> TestDownstreamServletCompatibility pins them.
> Everything else keeps 9.4's behaviour: {{/static}} lists no directory, 
> {{/logs}} keeps its admin check when the log directory is missing, 
> {{web.xml}} error pages work, a stopped listener can be reopened, the 
> NodeManager's WebSocket upgrade works, and a {{Location}} set through 
> {{sendRedirect}} stays absolute.
> *New settings*:
> ||Setting||Default||
> |{{hadoop.http.uri.compliance.violations}}|{{AMBIGUOUS_EMPTY_SEGMENT,AMBIGUOUS_PATH_ENCODING,SUSPICIOUS_PATH_CHARACTERS}}|
> |{{hadoop.http.ssl.renegotiation.allowed}}|{{false}}|
> *Downstream*:
> * Projects that use only the public API and {{javax.servlet}}: no rebuild, no 
> namespace change.
> * Non-shaded artifacts: Jetty 12 and {{org.eclipse.jetty.ee8}} jars replace 
> Jetty 9.4's on the classpath. A project pinning Jetty 9.4 next to Hadoop can 
> no longer share one Jetty release with it.
> * hadoop-client-runtime and hadoop-client-minicluster: the relocated Jetty is 
> 12. Relocated classes are not API.
> * The application catalog war keeps Jetty 9.4 through {{solr.jetty.version}} 
> until HADOOP-19998, if HADOOP-20008 landed. If HADOOP-19998 landed first, the 
> module is gone and no Jetty 9.4 artifact is left.
> *Depends on*: HADOOP-20012, HADOOP-20013, HADOOP-20014, HADOOP-20015, 
> HADOOP-20016, HADOOP-19970, HADOOP-20003, HADOOP-20004, HADOOP-20005, 
> HADOOP-20006, HADOOP-20007, and HADOOP-20008 or HADOOP-19998.
> *Not in scope*: {{jakarta.servlet}}, Jersey upgrades and ee9, ee10 or ee11: 
> HADOOP-19395. Guice 6 (HADOOP-19999) and jsr311-api (HADOOP-20000) are not 
> needed by this issue. HADOOP-19971 belongs to HADOOP-19395, and this issue 
> does not depend on it. Requires Java 17, so it cannot go to branch-3.3 or 
> branch-3.4.
> *CI*: touches hadoop-project, so a full build, including 
> hadoop-client-check-invariants, hadoop-client-check-test-invariants and 
> hadoop-client-integration-tests.
> *PR*: https://github.com/apache/hadoop/pull/8704 (draft, rebuilt on trunk and 
> stacked on its prerequisites; review the last 4 commits)



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

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

Reply via email to