Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 4.4.0
-
ghx-label-4
Description
We found in an internal build that during LocalCatalogTest we could encounter InaccessibleObjectException. This was found by the test test_no_inaccessible_objects
W0217 01:31:14.108255 18119 ObjectGraphWalker.java:251] The JVM is preventing Ehcache from accessing the subgraph beneath 'private final jdk.internal.platform.CgroupV1Metrics jdk.internal.platform.CgroupV1MetricsImpl.metrics' - cache sizes may be underestimated as a result Java exception follows: java.lang.reflect.InaccessibleObjectException: Unable to make field private final jdk.internal.platform.CgroupV1Metrics jdk.internal.platform.CgroupV1MetricsImpl.metrics accessible: module java.base does not "opens jdk.internal.platform" to unnamed module @2c89cd7f at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:176) at java.base/java.lang.reflect.Field.setAccessible(Field.java:170) at org.ehcache.sizeof.ObjectGraphWalker.getAllFields(ObjectGraphWalker.java:245) at org.ehcache.sizeof.ObjectGraphWalker.getFilteredFields(ObjectGraphWalker.java:204) at org.ehcache.sizeof.ObjectGraphWalker.walk(ObjectGraphWalker.java:159) at org.ehcache.sizeof.SizeOf.deepSizeOf(SizeOf.java:74) at org.apache.impala.catalog.local.CatalogdMetaProvider$SizeOfWeigher.weigh(CatalogdMetaProvider.java:2234) at com.google.common.cache.LocalCache$Segment.setValue(LocalCache.java:2043) at com.google.common.cache.LocalCache$Segment.replace(LocalCache.java:2990) at com.google.common.cache.LocalCache.replace(LocalCache.java:4324) at org.apache.impala.catalog.local.CatalogdMetaProvider.loadWithCaching(CatalogdMetaProvider.java:569) at org.apache.impala.catalog.local.CatalogdMetaProvider.loadIcebergApiTable(CatalogdMetaProvider.java:1160) at org.apache.impala.catalog.local.LocalIcebergTable.loadIcebergTableViaMetaProvider(LocalIcebergTable.java:96) at org.apache.impala.catalog.local.LocalTable.load(LocalTable.java:131) at org.apache.impala.catalog.local.LocalTable.load(LocalTable.java:114) at org.apache.impala.catalog.local.LocalDb.getTable(LocalDb.java:148) at org.apache.impala.catalog.local.LocalCatalog.getTable(LocalCatalog.java:139) at org.apache.impala.catalog.local.LocalCatalogTest.testLoadIcebergFileDescriptors(LocalCatalogTest.java:280) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Maybe we should add something like the following in bin/run-all-tests.sh as done in IMPALA-11260: (Addendum) Restrict add-opens to Java 9+.
"--add-opens=java.base/jdk.internal.platform=ALL-UNNAMED"