Skip to content

HBASE-29226 Migrate to jetty 12 with EE8 and bump java servlet to 4.0.1 #6783

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

NihalJain
Copy link
Contributor

@NihalJain NihalJain commented Mar 11, 2025

Please find a detailed summary of all changes as below:

Dependencies

  • Replaced hbase-shaded-jetty i.e. Jetty 9 with hbase-shaded-jetty-12-plus-core and hbase-shaded-jetty-12-plus-ee8 i.e. Jetty 12 EE8
  • Upgrade servlet.api.version to 4.0.1
  • Upgrade tomcat.jasper.version to 9.0.102

Code Adjustments

Test Adjustments

References

@NihalJain NihalJain marked this pull request as draft March 11, 2025 20:31
@NihalJain

This comment was marked as duplicate.

@@ -863,9 +863,9 @@
<jackson.version>2.17.2</jackson.version>
<jackson.databind.version>2.17.2</jackson.databind.version>
<jaxb-api.version>2.3.1</jaxb-api.version>
<servlet.api.version>3.1.0</servlet.api.version>
<servlet.api.version>4.0.1</servlet.api.version>
Copy link
Contributor Author

@NihalJain NihalJain Mar 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a note: hbase worked with 3.1.0 as well but as per https://stackoverflow.com/questions/77007560/missing-jetty-servlet-12-0-0-dependency we should be on 4.x

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@NihalJain NihalJain changed the title [WIP] Migrate to jetty 12 with EE8 and bump java servlet to 4.0.1 HBASE-29226 Migrate to jetty 12 with EE8 and bump java servlet to 4.0.1 Mar 27, 2025
@@ -267,7 +266,11 @@ private void process(String urlString) throws Exception {

HttpURLConnection connection = connect(url);

HttpExceptionUtils.validateResponse(connection, 200);
// We implement the validateResponse method inside hbase to handle for HTML response.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added note for reviewers' ease, let me know if should drop before merge

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also previous method was not useful, the error is HTML but it parses JSON

@Apache-HBase

This comment has been minimized.

@NihalJain NihalJain marked this pull request as ready for review March 27, 2025 12:56
@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

<!--
Copyright (C) Jetty Authors

Licensed under the Apache License, Version 2.0 (the "License");
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure why we even had this file in our codebase. Tried deleting to find regression, all UTs ran fine locally. Anyone could help me with how to validate if this is even needed?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be coming from the ee support in jetty.
Though I believe we're not using the web.xml server config at all in HBase.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@stoty
Copy link
Contributor

stoty commented May 9, 2025

What's the status here ?
Looking at the latest CI run, I only see a single unrealted test failure.

@NihalJain
Copy link
Contributor Author

NihalJain commented May 9, 2025

What's the status here ?

Looking at the latest CI run, I only see a single unrealted test failure.

I have verified all major flows in a separate jira. Could not get any more reviews here. We need to merge thirdparty change, release that, consume here and merge this.

@NihalJain
Copy link
Contributor Author

Verified the changes and updated at https://issues.apache.org/jira/browse/HBASE-29227

Copy pasting here..


Summary of Jetty 9 to Jetty 12 with EE8 Upgrade Testing for HBase

Environment Setup

  • Task: Set up a distributed HBase environment with Kerberos and SSL enabled (built with PR #6783 and commit 634c6820754ecb3d976c5360e9afcf3c0b42873d)

  • Status: Completed

  • Components Tested: Master, RegionServer, REST, Thrift

Tests Conducted

1. Basic Sanity Check

  • Task: Verify basic HBase CRUD and admin operations via shell.

  • Status: Passed

2. User Interfaces (UIs)

  • Master UI with SSL: Passed

  • RegionServer UI with SSL: Passed

  • REST Server UI with SSL: Passed

  • Thrift Server UI with SSL: Passed

  • Note: Verified almost all web pages except for profiler servlet.

3. REST Server

  • Task: Perform basic CRUD operations with SSL.

  • Status: Passed

4. Thrift Server

  • Task: Run Thrift demo client.

  • Status: Passed

5. LDAP Setup in Web UI

  • Task: Test LDAP-based UI login.

  • Status: Passed

6. Misc UI Security Settings

  • Task: Verify the following security configurations:

    • hbase.master.ui.readonly=false

    • hbase.http.filter.no-store.enable=true

    • hbase.security.authentication.ui.config.protected=true

    • hadoop.security.instrumentation.requires.admin=true

    • etc.

  • Status: Passed


Please let me know if any further testing is needed.

CC: @stoty @Apache9 @ndimiduk @apurtell

FYR

@NihalJain
Copy link
Contributor Author

With jetty 12.0.20 we have fixed jetty/jetty.project#12958 i.e. "Discrepancy between Jetty 9 and Jetty 12 when setting the base resource to a path containing .." Hence changes for handling log directory has been reverted. Lets see if tests go well with latest hbase-thirdparty

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@NihalJain
Copy link
Contributor Author

Retriggered to consume latest hbase-thirdparty snapshot at apache/hbase-thirdparty#137

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 28s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 shelldocs 0m 1s Shelldocs was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for branch
+1 💚 mvninstall 3m 10s master passed
+1 💚 compile 7m 51s master passed
+1 💚 checkstyle 1m 10s master passed
+1 💚 spotbugs 11m 11s master passed
+1 💚 spotless 0m 44s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 40s Maven dependency ordering for patch
+1 💚 mvninstall 3m 16s the patch passed
+1 💚 compile 10m 26s the patch passed
+1 💚 javac 10m 26s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 1m 21s /results-checkstyle-root.txt root: The patch generated 2 new + 10 unchanged - 0 fixed = 12 total (was 10)
+1 💚 shellcheck 0m 0s No new issues.
+1 💚 xmllint 0m 1s No new issues.
+1 💚 spotbugs 15m 45s the patch passed
+1 💚 hadoopcheck 18m 13s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚 spotless 1m 4s patch has no errors when running spotless:check.
_ Other Tests _
+1 💚 asflicense 1m 39s The patch does not generate ASF License warnings.
89m 9s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/20/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #6783
Optional Tests dupname asflicense javac codespell detsecrets xmllint hadoopcheck spotless compile spotbugs checkstyle hbaseanti shellcheck shelldocs
uname Linux caa62588d20b 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 27d2c17
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 188 (vs. ulimit of 30000)
modules C: hbase-http hbase-server hbase-thrift hbase-it hbase-rest hbase-shaded/hbase-shaded-testing-util hbase-shaded/hbase-shaded-check-invariants hbase-shaded/hbase-shaded-with-hadoop-check-invariants . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/20/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 xmllint=20913
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 28s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 3m 12s master passed
+1 💚 compile 2m 9s master passed
+1 💚 javadoc 3m 52s master passed
+1 💚 shadedjars 5m 55s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 41s Maven dependency ordering for patch
+1 💚 mvninstall 3m 5s the patch passed
+1 💚 compile 2m 12s the patch passed
+1 💚 javac 2m 12s the patch passed
+1 💚 javadoc 4m 49s the patch passed
+1 💚 shadedjars 6m 6s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 282m 32s root in the patch passed.
322m 32s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/20/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #6783
Optional Tests javac javadoc unit shadedjars compile
uname Linux 0cf3a875fad1 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 27d2c17
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/20/testReport/
Max. process+thread count 8314 (vs. ulimit of 30000)
modules C: hbase-http hbase-server hbase-thrift hbase-it hbase-rest hbase-shaded/hbase-shaded-testing-util hbase-shaded/hbase-shaded-check-invariants hbase-shaded/hbase-shaded-with-hadoop-check-invariants . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/20/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants