Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-03-03 Thread Duo Zhang
Filed HBASE-26793 for making a new hbase-thirdparty release. Then will put the PR for HBASE-25465. Thanks. 张铎(Duo Zhang) 于2022年3月2日周三 11:19写道: > Good news, with HBASE-26781 in place[1], I successfully built hbase with > java 11 --release 8. Of course I need to modify the hbase main code a

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-03-01 Thread Duo Zhang
Good news, with HBASE-26781 in place[1], I successfully built hbase with java 11 --release 8. Of course I need to modify the hbase main code a bit, and also make use of netty's PlatformDependent for processing DirectByteBuffer. 1. https://github.com/apache/hbase-thirdparty/pull/79 张铎(Duo Zhang)

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-03-01 Thread Duo Zhang
So after HBASE-26773, we still have another problem that we can not use sun.nio.ch.DirectBuffer. The main usage is to get the address. Let me provide a new util method in the hbase-unsafe module. Andrew Purtell 于2022年2月26日周六 13:58写道: > That sounds good, looking forward to it. Please let me

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-25 Thread Andrew Purtell
That sounds good, looking forward to it. Please let me know if you want help. > On Feb 25, 2022, at 9:56 PM, 张铎 wrote: > > Filed HBASE-26773 and tried, the result is not very good. Netty's > PlatformDependent can not meet all the requirements. > > So now I prefer we have a new

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-25 Thread Duo Zhang
Filed HBASE-26773 and tried, the result is not very good. Netty's PlatformDependent can not meet all the requirements. So now I prefer we have a new hbase-thirdparty-unsafe module to provide the Unsafe ability without exposing sun.misc.Unsafe directly. Will give it a try. Thanks. Andrew

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-23 Thread Andrew Purtell
Ok, a bridge in one place would minimize the risk. On Wed, Feb 23, 2022 at 6:07 PM 张铎(Duo Zhang) wrote: > I think this is a reasonable concern, we could do this on our own. > > But checking the commit history of PlatformDependent[1], the API is pretty > stable, so I think the risk of hitting a

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-23 Thread Duo Zhang
I think this is a reasonable concern, we could do this on our own. But checking the commit history of PlatformDependent[1], the API is pretty stable, so I think the risk of hitting a security issue but we can not upgrade due to API conflicts is very low. And if a security issue requires big

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-23 Thread Andrew Purtell
We often upgrade netty after there is a CVE announcement. This produces a pressure to upgrade in production. Use of an internal API is not a good practice because it can cause friction because of breaking changes when there is a need to upgrade all of a sudden. This is painful and hopefully we can

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-21 Thread Duo Zhang
For me, since we shade netty, there will be no conflict with other netty dependencies, so we can make sure the netty version we used is exactly the one we shaded in hbase-thirdparty. If later we want to upgrade netty version in hbase-thirdparty, and it breaks the api, then we can release a new

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-21 Thread Andrew Purtell
Thanks for that. I understand better what you are proposing now. It is clear that you have thought it through. So then the only question I have is this: Do you think it is a concern that Netty's PlatformDependent class is in their "io.netty.util.internal" package? The 'internal' designation

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-21 Thread Duo Zhang
What I proposed here is for solving the problem… The problem is that when using —release 8, javac will not export the jdk.unsupported symbols, so using sun.misc.Unsafe will trigger a compile error. But at runtime if you export jdk.unsupported you can still use sun.misc.Unsafe. The related jdk

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-21 Thread Andrew Purtell
As Nick discovered ‘—release’ doesn’t work for version 8 anyway. > On Feb 20, 2022, at 3:47 PM, 张铎 wrote: > > I know, with —release 8 ByteBuffer will not be an problem but then > sun.misc.Unsafe can not be used any more right? So the problem here is how > to make use of Unsafe with —release

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-20 Thread Duo Zhang
I know, with —release 8 ByteBuffer will not be an problem but then sun.misc.Unsafe can not be used any more right? So the problem here is how to make use of Unsafe with —release 8. What I proposed here is that we just do not use it, then we can make use of —release 8 to address the ByteBuffer

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-20 Thread Andrew Purtell
The problem that leads us to consider '--release 8', or what it would promise if it worked, isn't Unsafe, it is ByteBuffer. https://www.morling.dev/blog/bytebuffer-and-the-dreaded-nosuchmethoderror/ . Although to your point Netty has ByteBuf... On Sun, Feb 20, 2022 at 5:23 AM 张铎(Duo Zhang)

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-20 Thread Duo Zhang
Since we have shaded netty, I think we could make use of netty's PlatformDependent[1] class to avoid referencing Unsafe directly, then there will be no problem for us to use the '--release 8' option. If no big concerns, I will file an issue to remove all the sun.misc.Unsafe references in our code

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-17 Thread Sean Busbey
so we would require a specific patch release of Hadoop as a minimum? It's messy, but we've certainly done it before. On Thu, Feb 17, 2022 at 1:31 PM Andrew Purtell wrote: > On Thu, Feb 17, 2022 at 10:50 AM Steve Loughran wrote: > > > j > > On 2022/02/15 22:27:50 Andrew Purtell wrote: > > > > >

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-17 Thread Andrew Purtell
On Thu, Feb 17, 2022 at 10:50 AM Steve Loughran wrote: > j > On 2022/02/15 22:27:50 Andrew Purtell wrote: > > > The primary consideration to my mind is the state of S3A: in what > version it can be said to be stable and feature complete. I think 3.3 is > the appropriate code line for that

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-17 Thread Steve Loughran
j On 2022/02/15 22:27:50 Andrew Purtell wrote: > The primary consideration to my mind is the state of S3A: in what version it > can be said to be stable and feature complete. I think 3.3 is the appropriate > code line for that criteria but perhaps 3.2 could serve as well. 3.3.1. i have not

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-17 Thread Josh Elser
On 2/16/22 12:24 AM, Sean Busbey wrote: Regarding the original question, I would be in favor of the proposal. Time marches on. I assume just to state the obvious that our destination of minimum LTS would shift from 8 to 11. Yes, sorry I should have expressly stated JDK11 would become the

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Duo Zhang
I think this could be done by some module tricks, where we build a special module with -source 8 and -target 8.We have done similar things in the past to have hadoop1-compat and hadoop2-compact. Let me have a try. Sean Busbey 于2022年2月16日周三 13:31写道: > Unfortunately if we want to keep jdk8

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Sean Busbey
Unfortunately if we want to keep jdk8 working we can't rely on building with the jdk release target option on newer jdks. We ran into this recently in HBASE-25465 where a JDK bug came up. On Tue, Feb 15, 2022 at 8:12 PM 张铎(Duo Zhang) wrote: > +1 on moving the minimum required java version for

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Sean Busbey
> Regarding the original question, I would be in favor of the proposal. Time > marches on. I assume just to state the obvious that our destination of > minimum LTS would shift from 8 to 11. Yes, sorry I should have expressly stated JDK11 would become the minimum with some release after HBase 3.

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Duo Zhang
+1 on moving the minimum required java version for compiling HBase to Java 11. But we could still use --release=8 to still support jdk8 at runtime. Java 8 is still widely used, and I believe this will last for even more years, as lots of big companies such as RedHat, Microsoft and Amazon are

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Sean Busbey
If we set the minJDK to 11 I believe that will effectively remove jdk8 support, rather than "just" deprecate it. As we build out more robust testing I would be in favor of running less of it on deprecated JDKs. On Tue, Feb 15, 2022, 16:10 Josh Elser wrote: > Deprecating jdk8 for HBase 3 and

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Andrew Purtell
The section in our docs on JDK11 seems out of date. In my experience using Java 11 to run ZooKeeper (3.5), Hadoop HDFS/YARN/MR (2.10 and 3.3), and HBase (2.4) is a nonissue. These software versions are stable under load. Most recently I tested scale ingest with 11.0.15+1, hot off the presses so

Re: [DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Josh Elser
Deprecating jdk8 for HBase 3 and requiring minJdk=11 seems reasonable to me. Gotta start pushing the issue somehow. On 2/15/22 1:47 PM, Sean Busbey wrote: Hi folks! It's been some time since we decided to stick to LTS JDK releases as a way of getting a handle on the JDK treadmill. What do

[DISCUSS] deprecating jdk8, progress on LTS jdk support

2022-02-15 Thread Sean Busbey
Hi folks! It's been some time since we decided to stick to LTS JDK releases as a way of getting a handle on the JDK treadmill. What do folks think about deprecating JDK8? The openjdk8u project is still going and there are commercial support options at least through 2030. Deprecating it in HBase