> 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. Sticking to 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 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 suggest we use the EE8 environment on Jetty 12. See 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 Tue, 4 Mar 2025 at 2:27 AM, Istvan Toth <st...@apache.org> wrote: > Thanks for your reply, Andrew. > > If no-one else picks it up, I will try to start working on moving to Jetty > 12 in a few weeks. > > On the importance of recent Java support: (which doesn't change the fact > that we're at the mercy of Hadoop releases) > > I also used to think that it's not important to support the latest Java > versions, but recent discussions with the Trino team have changed my mind. > My new understanding is that there are an increasing number of users and > projects who are aggressively moving to the latest Java versions, both > applications and libraries (for example Trino), > and if we don't keep up, then HBase/Phoenix becomes a non-starter by simply > not running in their JVMs. > > Yes, probably 80% of the current users and 90+% percent of nodes are > enterprises and other very risk-averse entities that wouldn't even > consider a non-LTS java version, but by lagging with Java support, we are > driving off new adapters that are vital for the long-term health of the > project. > > By keeping up with non-LTS versions, we also get a head-start, and are much > more likely to support new LTS releases on day one. > > Istvan > > On Mon, Mar 3, 2025 at 6:07 PM Andrew Purtell <apurt...@apache.org> wrote: > > > I don't think compatibility with the very most recent Java version is a > > primary requirement for this project. Identifying the issues and > proposing > > a plan as has been done here is great. Beyond that, if someone has the > > burning need to move to Java 22 or later we should here about it then by > > user filed JIRAs or PRs or mailing list posts asking about breaks caused > by > > SecurityManager removal. Should Hadoop take steps we could also leverage > > that, after the change lands in a released version we can consume. > > > > The dependency on the old version of Jetty that seems about to fall out > of > > maintenance seems like a more immediate issue, given that Jetty is a > > frequent flyer for security issues and has a number of (solved) CVEs > posted > > over the past few years. > > > > > I think that the best course of action would be adding a separate Jetty > > 12 > > > 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 > > Presumably JIRAs/PRs to move up to Jetty 12 would follow. I think we can > > find helpers for a Jetty 12 uplift at the $dayjob here also. > > > > > > On Mon, Mar 3, 2025 at 5:50 AM Istvan Toth <st...@apache.org> wrote: > > > >> Correction: I meant Jetty 12 > >> > >> On Mon, Mar 3, 2025 at 6:41 AM Istvan Toth <st...@apache.org> wrote: > >> > >> > 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. > >> > > >> > > >> > > > > > > -- > > Best regards, > > Andrew > > > > Unrest, ignorance distilled, nihilistic imbeciles - > > It's what we’ve earned > > Welcome, apocalypse, what’s taken you so long? > > Bring us the fitting end that we’ve been counting on > > - A23, Welcome, Apocalypse > > >