> I think that the best course of action would be adding a separate Jetty11
module to hbase-thirdparty, this way 9.4.x and 11.0.x can be both
used/updated by the 2.x / 3.x branches.

+1, I would like to volunteer for this work. 

Maintaining Jetty 9.4.x could be quite challenging from a CVE perspective since 
it has been EOCS (End of Community Support) since June 2022, and new releases 
may not be forthcoming for a long time. I faced similar issues during our last 
hbase-thirdparty release. See this issue comment: 
https://github.com/jetty/jetty.project/issues/12630#issuecomment-2604701092

Regarding the version and CVEs, I agree with @Andrew and suggest that we jump 
directly to Jetty 12, bypassing Jetty 11, to support javax.servlet for JSP 
2.3.1. Therefore, I plan to use the EE8 environment on Jetty 12. See Jetty 
version history: https://jetty.org/download.html#version-history

@Istvan, is there any particular reason you recommend moving to Jetty 11, which 
is also EOCS?

If others are fine with me taking this up, I can create the necessary JIRAs for 
the Jetty migration project and start the work soon.

Regards,
Nihal

On 2025/03/03 18:08:53 Wei-Chiu Chuang wrote:
> FYI I think Hadoop will need to make similar moves too.
> Sounds like Hadoop should start the work to drop JDK8 as well. I know Steve
> has a patch that requires JDK17+ due to Iceberg
> https://github.com/apache/hadoop/pull/7316
> 
> ---------- Forwarded message ---------
> From: Istvan Toth <st...@apache.org>
> Date: Sun, Mar 2, 2025 at 9:41 PM
> Subject: [DISCUSS] Plans for JDK22 / SecurityManager removal
> To: HBase Dev List <d...@hbase.apache.org>
> 
> 
> Hi!
> 
> The last big incompatible JDK change is the JEP411/JEP486 SecurityManager
> removal process, which has gotten serious with JDK22, which disables
> Subject.doAs*() Subject.getSubject() by default (while providing the kind
> of equivalent callAs() and current() methods), and kills automatic Subject
> propagation to new threads.
> 
> To add insult to injury the new methods are only available from JDK18, so
> it is not possible to just move to the new API without breaking JDK17.
> 
> Some of this can only be solved in Hadoop (hopefully 3.5) , but HBase can
> also take steps to move towards JDK22 compatibility in the meantime.
> 
> Here's the plan I have in mind:
> 
> - Review and the dependencies WRT SecurityManage usage (just search for API
> calls)
> - Update the dependencies as needed
> 
> - Add a reflection-based compatibility Utility class based on Jetty's
> SecurityUtils, (or one of its derivatives)
> - Replace the deprecated method calls with the compatibility versions
> - Wrap Runnables/Callables with Subject current()/callAs() methods.
> 
> One large dependency I have identified is Jetty.
> While technically we MAY be able to keep using 9.4 by overriding its
> default ThreadFactory, I think that considering that even semi-formal Jetty
> 9.4 support is on its very last legs (the latest update was never even
> announced and is not listed in the downloads page),  the advantages of
> updating to Jetty 11 on branch-3+ now far outweighs the added maintenance
> burden of the branch divergence.
> 
> I think that the best course of action would be adding a separate Jetty11
> module to hbase-thirdparty, this way 9.4.x and 11.0.x can be both
> used/updated by the 2.x / 3.x branches.
> 
> What do you think ?
> 
> - Do you agree that JEP411/486 should be treated as a priority ?
> - Would you volunteer for the dependency audit ?
> - Do you agree with the Jetty update, and the plan outlined above ?
> 
> Istvan
> 
> ps: Sorry, no links because GMail seems to react very bady to any. Please
> use search.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-dev-h...@hadoop.apache.org

Reply via email to