[ 
https://issues.apache.org/jira/browse/IMPALA-12464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17771218#comment-17771218
 ] 

ASF subversion and git services commented on IMPALA-12464:
----------------------------------------------------------

Commit ae14d78c8f2e8366e67aa8c39f0c02c60862905e in impala's branch 
refs/heads/master from Michael Smith
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=ae14d78c8 ]

IMPALA-12464: Add opens for java.util.regex

Adds --add-opens for java.util.regex with jamm for JDK 17. Java 15 added
hidden classes to define lambdas, and Jamm is unable to access fields of
hidden classes unless add-opens is added for the class.

Change-Id: I9909985fa15ed1b0bc92b04d6ab2645244a0bee3
Reviewed-on: http://gerrit.cloudera.org:8080/20510
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Michael Smith <[email protected]>


> CatalogdMetaPRovider triggers CannotAccessFieldException on JDK17 during 
> custom_cluster tests
> ---------------------------------------------------------------------------------------------
>
>                 Key: IMPALA-12464
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12464
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Catalog
>    Affects Versions: Impala 4.3.0
>            Reporter: Laszlo Gaal
>            Assignee: Michael Smith
>            Priority: Critical
>             Fix For: Impala 4.4.0
>
>
> Verifier report:{code}
> verifiers/test_banned_log_messages.py:46: in test_no_unsupported_operations
>     self.assert_message_absent('CannotAccessFieldException')
> verifiers/test_banned_log_messages.py:38: in assert_message_absent
>     assert returncode == 1, "%s contains '%s'" % (log_file_path, message)
> E   AssertionError: 
> /data/jenkins/workspace/impala-asf-master-core-jdk17/repos/Impala/logs/custom_cluster_tests/impalad.impala-ec2-centos79-m6i-4xlarge-ondemand-0bad.vpc.cloudera.com.jenkins.log.INFO.20230923-194908.29321
>  contains 'CannotAccessFieldException'
> E   assert 0 == 1{code}
> Coordinator log fragment:{code}
> I0923 19:49:19.707245 31362 impala-beeswax-server.cc:58] query(): query=grant 
> select on database test_grant_revoke_with_local_catalog_e18ee42b_db to USER 
> jenkins
> I0923 19:49:19.707249 31362 impala-beeswax-server.cc:513] query: Query {
>   01: query (string) = "grant select on database 
> test_grant_revoke_with_local_catalog_e18ee42b_db to USER jenkins",
>   03: configuration (list) = list<string>[1] {
>     [0] = 
> "CLIENT_IDENTIFIER=authorization/test_ranger.py::TestRanger::()::test_grant_revoke_with_local_catalog",
>   },
>   04: hadoop_user (string) = "admin",
> ...
> I0923 19:49:19.708739 31287 CatalogdMetaProvider.java:1519] Invalidated 
> objects in cache: [list of database names, HMS_METADATA for DB 
> test_grant_revoke_with_local_catalog_e18ee42b_db]
> I0923 19:49:19.708796 31287 impala-server.cc:2170] Catalog topic update 
> applied with version: 1807 new min catalog object version: 3
> W0923 19:49:19.766166 31362 CatalogdMetaProvider.java:2062] 
> ca43a0e00172c459:24e7d55a00000000] Unable to weigh cache entry, additional 
> add-opens needed
> Java exception follows:
> org.github.jamm.CannotAccessFieldException: The value of the 'arg$1' field 
> from java.util.regex.Pattern$CharPredicate$$Lambda$23/0x80000002d cannot be 
> retrieved
>       at 
> org.github.jamm.accessors.JpmsAccessor.getFieldValue(JpmsAccessor.java:54)
>       at org.github.jamm.MemoryMeter.getFieldValue(MemoryMeter.java:568)
>       at org.github.jamm.MemoryMeter.addField(MemoryMeter.java:550)
>       at org.github.jamm.MemoryMeter.addDeclaredFields(MemoryMeter.java:537)
>       at org.github.jamm.MemoryMeter.addFields(MemoryMeter.java:529)
>       at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:507)
>       at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:441)
>       at 
> org.apache.impala.catalog.local.CatalogdMetaProvider$SizeOfWeigher.weigh(CatalogdMetaProvider.java:2056)
>       at 
> com.google.common.cache.LocalCache$Segment.setValue(LocalCache.java:2014)
>       at 
> com.google.common.cache.LocalCache$Segment.storeLoadedValue(LocalCache.java:3162)
>       at 
> com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2322)
>       at 
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2283)
>       at 
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
>       at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
>       at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
>       at 
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4863)
>       at 
> org.apache.impala.catalog.local.CatalogdMetaProvider.loadWithCaching(CatalogdMetaProvider.java:534)
>       at 
> org.apache.impala.catalog.local.CatalogdMetaProvider.loadTableList(CatalogdMetaProvider.java:683)
>       at 
> org.apache.impala.catalog.local.LocalDb.loadTableNames(LocalDb.java:173)
>       at 
> org.apache.impala.catalog.local.LocalDb.getAllTableNames(LocalDb.java:158)
>       at 
> org.apache.impala.service.Frontend.getCatalogMetrics(Frontend.java:1058)
>       at 
> org.apache.impala.service.JniFrontend.getCatalogMetrics(JniFrontend.java:244)
> Caused by: java.lang.UnsupportedOperationException: can't get field offset on 
> a hidden class: private final java.util.regex.Pattern$CharPredicate 
> java.util.regex.Pattern$CharPredicate$$Lambda$23/0x80000002d.arg$1
>       at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unsafe.java:645)
>       at 
> org.github.jamm.accessors.JpmsAccessor.getFieldValue(JpmsAccessor.java:46)
>       ... 21 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to