You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2022/04/21 15:56:00 UTC

[jira] [Resolved] (HBASE-25058) Export necessary modules when running under JDK11

     [ https://issues.apache.org/jira/browse/HBASE-25058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Duo Zhang resolved HBASE-25058.
-------------------------------
    Fix Version/s: 2.5.0
                   3.0.0-alpha-3
     Hadoop Flags: Reviewed
       Resolution: Fixed

Pushed to branch-2.5+.

Thanks [~ndimiduk] for reviewing!

> Export necessary modules when running under JDK11
> -------------------------------------------------
>
>                 Key: HBASE-25058
>                 URL: https://issues.apache.org/jira/browse/HBASE-25058
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Performance, rpc
>    Affects Versions: 3.0.0-alpha-1, 2.3.0, 2.4.0
>            Reporter: Nick Dimiduk
>            Assignee: Duo Zhang
>            Priority: Major
>             Fix For: 2.5.0, 3.0.0-alpha-3
>
>
> Running on JDK11, I noticed this in the debug logging. It looks like netty is using {{sun.misc.Unsafe}} instead of the new location on jdk11.
> {noformat}
> 2020-09-17 00:21:53,318 DEBUG org.apache.hbase.thirdparty.io.netty.util.internal.PlatformDependent0: jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable
> java.lang.IllegalAccessException: class org.apache.hbase.thirdparty.io.netty.util.internal.PlatformDependent0$6 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @78461bc4
>         at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
>         at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:558)
>         at org.apache.hbase.thirdparty.io.netty.util.internal.PlatformDependent0$6.run(PlatformDependent0.java:335)
>         at java.base/java.security.AccessController.doPrivileged(Native Method)
>         at org.apache.hbase.thirdparty.io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:326)
>         at org.apache.hbase.thirdparty.io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:289)
>         at org.apache.hbase.thirdparty.io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:92)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.Native.loadNativeLibrary(Native.java:228)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.Native.<clinit>(Native.java:58)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:39)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.EpollEventLoop.<clinit>(EpollEventLoop.java:51)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:150)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:35)
>         at org.apache.hbase.thirdparty.io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
>         at org.apache.hbase.thirdparty.io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58)
>         at org.apache.hbase.thirdparty.io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:47)
>         at org.apache.hbase.thirdparty.io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:59)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:112)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:99)
>         at org.apache.hbase.thirdparty.io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:76)
>         at org.apache.hadoop.hbase.util.NettyEventLoopGroupConfig.<init>(NettyEventLoopGroupConfig.java:58)
>         at org.apache.hadoop.hbase.regionserver.HRegionServer.setupNetty(HRegionServer.java:713)
>         at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:569)
>         at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:524)
>         at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
>         at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:3054)
>         at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:236)
>         at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
>         at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
>         at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3072)
> {noformat}
> We should try to make this new API accessible to netty for future compatibility.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)