[
https://issues.apache.org/jira/browse/HBASE-29234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Istvan Toth updated HBASE-29234:
--------------------------------
Description:
This is from the Hadoop test suite, but the problem is in HBase
{noformat}
[ERROR]
org.apache.hadoop.yarn.server.timelineservice.storage.TestTimelineReaderHBaseDown.testTimelineReaderDetectsHBaseDown
Time elapsed: 0.282 s <<< ERROR!
java.lang.reflect.InaccessibleObjectException: Unable to make private native
java.lang.reflect.Field[] java.lang.Class.getDeclaredFields0(boolean)
accessible: module java.base does not "opens java.lang" to unnamed module
@541e4305
at
java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:353)
at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:329)
at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:277)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:182)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:176)
at
org.apache.hadoop.hbase.util.ReflectionUtils.getModifiersField(ReflectionUtils.java:286)
at
org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:326)
at
org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:285)
at org.apache.hadoop.hbase.fs.HFileSystem.<init>(HFileSystem.java:96)
at org.apache.hadoop.hbase.fs.HFileSystem.get(HFileSystem.java:453)
{noformat}
Due to JEP416, we are no longer able to set the LocationsOrderInterceptor on
JDK18+.
While the code is supposed to catch these instances and still work (just not
optimally), it does not catch InaccessibleObjectException.
Catching InaccessibleObjectException is not real fix, but it allows for running
with JDK18+.
The real fix would either be avoiding reflection for this (which probably
requires Hadoop support), or using the sanity-draining workaround for JEP416
which floats around on stackoverflow.
was:
This is from the Hadoop test suite, but the problem is in HBase
{noformat}
[ERROR]
org.apache.hadoop.yarn.server.timelineservice.storage.TestTimelineReaderHBaseDown.testTimelineReaderDetectsHBaseDown
Time elapsed: 0.282 s <<< ERROR!
java.lang.reflect.InaccessibleObjectException: Unable to make private native
java.lang.reflect.Field[] java.lang.Class.getDeclaredFields0(boolean)
accessible: module java.base does not "opens java.lang" to unnamed module
@541e4305
at
java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:353)
at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:329)
at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:277)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:182)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:176)
at
org.apache.hadoop.hbase.util.ReflectionUtils.getModifiersField(ReflectionUtils.java:286)
at
org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:326)
at
org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:285)
at org.apache.hadoop.hbase.fs.HFileSystem.<init>(HFileSystem.java:96)
at org.apache.hadoop.hbase.fs.HFileSystem.get(HFileSystem.java:453)
{noformat}
Due to JEP416, we are no longer able to set the LocationsOrderInterceptor.
While the code is supposed to catch these instances and still work (just not
optimally), it does not catch InaccessibleObjectException.
Catching InaccessibleObjectException is not real fix, but it allows for running
with JDK18+.
The real fix would either be avoiding reflection for this (which probably
requires Hadoop support), or using the sanity-draining workaround for JEP416
which floats around on stackoverflow.
> Handle java.lang.reflect.InaccessibleObjectException in HFileSystem
> -------------------------------------------------------------------
>
> Key: HBASE-29234
> URL: https://issues.apache.org/jira/browse/HBASE-29234
> Project: HBase
> Issue Type: Bug
> Reporter: Istvan Toth
> Priority: Major
>
>
> This is from the Hadoop test suite, but the problem is in HBase
> {noformat}
> [ERROR]
> org.apache.hadoop.yarn.server.timelineservice.storage.TestTimelineReaderHBaseDown.testTimelineReaderDetectsHBaseDown
> Time elapsed: 0.282 s <<< ERROR!
> java.lang.reflect.InaccessibleObjectException: Unable to make private native
> java.lang.reflect.Field[] java.lang.Class.getDeclaredFields0(boolean)
> accessible: module java.base does not "opens java.lang" to unnamed module
> @541e4305
> at
> java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:353)
> at
> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:329)
> at
> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:277)
> at
> java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:182)
> at java.base/java.lang.reflect.Method.setAccessible(Method.java:176)
> at
> org.apache.hadoop.hbase.util.ReflectionUtils.getModifiersField(ReflectionUtils.java:286)
> at
> org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:326)
> at
> org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:285)
> at org.apache.hadoop.hbase.fs.HFileSystem.<init>(HFileSystem.java:96)
> at org.apache.hadoop.hbase.fs.HFileSystem.get(HFileSystem.java:453)
> {noformat}
> Due to JEP416, we are no longer able to set the LocationsOrderInterceptor on
> JDK18+.
> While the code is supposed to catch these instances and still work (just not
> optimally), it does not catch InaccessibleObjectException.
>
> Catching InaccessibleObjectException is not real fix, but it allows for
> running with JDK18+.
> The real fix would either be avoiding reflection for this (which probably
> requires Hadoop support), or using the sanity-draining workaround for JEP416
> which floats around on stackoverflow.
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)