This is an automated email from the ASF dual-hosted git repository.

frankvicky pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 2346c0e7370 KAFKA-19495: update native image config for native images 
(#20150)
2346c0e7370 is described below

commit 2346c0e7370d0859b0c4fe68a75b743af788c2b5
Author: Luke Chen <[email protected]>
AuthorDate: Fri Jul 11 17:26:28 2025 +0800

    KAFKA-19495: update native image config for native images (#20150)
    
    We failed the native image build and test workflow
    
    
[here](https://github.com/apache/kafka/actions/runs/16211393417/job/45772104969).
    The failed messages are:
    ```
    Exception in thread "main" java.lang.ExceptionInInitializerError at
    
org.apache.kafka.server.config.AbstractKafkaConfig.<clinit>(AbstractKafkaConfig.java:56)
    at
    [email protected]/java.lang.Class.ensureInitialized(DynamicHub.java:601)
    at kafka.tools.StorageTool$.$anonfun$execute$1(StorageTool.scala:79) at
    scala.Option.flatMap(Option.scala:283) at
    kafka.tools.StorageTool$.execute(StorageTool.scala:79) at
    kafka.tools.StorageTool$.main(StorageTool.scala:46) at
    kafka.docker.KafkaDockerWrapper$.main(KafkaDockerWrapper.scala:57) at
    kafka.docker.KafkaDockerWrapper.main(KafkaDockerWrapper.scala) at
    
[email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
    Caused by: org.apache.kafka.common.config.ConfigException: Invalid value
    org.apache.kafka.common.security.oauthbearer.DefaultJwtRetriever for
    configuration sasl.oauthbearer.jwt.retriever.class: Class
    org.apache.kafka.common.security.oauthbearer.DefaultJwtRetriever could
    not be found. at
    org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:778)
    at
    
org.apache.kafka.common.config.ConfigDef$ConfigKey.<init>(ConfigDef.java:1271)
    at org.apache.kafka.common.config.ConfigDef.define(ConfigDef.java:155)
    at org.apache.kafka.common.config.ConfigDef.define(ConfigDef.java:198)
    at org.apache.kafka.common.config.ConfigDef.define(ConfigDef.java:237)
    at org.apache.kafka.common.config.ConfigDef.define(ConfigDef.java:399)
    at org.apache.kafka.common.config.ConfigDef.define(ConfigDef.java:412)
    at
    
org.apache.kafka.common.config.internals.BrokerSecurityConfigs.<clinit>(BrokerSecurityConfigs.java:197)
    ... 9 more
    ```
    After investigation, I found we have to update the native image configs
    to support the new code change as described
    
    
[here](https://github.com/apache/kafka/blob/trunk/docker/native/README.md#native-image-reachability-metadata).
    This PR fixes this issue and verified that the same workflow for native
    image passed
    
    
[here](https://github.com/apache/kafka/actions/runs/16215454627/job/45783738496).
    
    The PR for v4.1.0 is https://github.com/apache/kafka/pull/20151 .
    
    Reviewers: TengYao Chi <[email protected]>
---
 docker/native/native-image-configs/reflect-config.json | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/docker/native/native-image-configs/reflect-config.json 
b/docker/native/native-image-configs/reflect-config.json
index f4263a08898..c953ea9fe1d 100644
--- a/docker/native/native-image-configs/reflect-config.json
+++ b/docker/native/native-image-configs/reflect-config.json
@@ -1023,6 +1023,12 @@
   "name":"org.apache.kafka.common.security.kerberos.KerberosLogin",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"org.apache.kafka.common.security.oauthbearer.DefaultJwtRetriever"
+},
+{
+  "name":"org.apache.kafka.common.security.oauthbearer.DefaultJwtValidator"
+},
 {
   "name":"org.apache.kafka.common.security.plain.PlainLoginModule",
   "methods":[{"name":"<init>","parameterTypes":[] }]
@@ -1067,6 +1073,18 @@
   "name":"org.apache.kafka.metadata.authorizer.StandardAuthorizer",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "name":"org.apache.kafka.server.logger.LoggingController",
+  "queryAllPublicConstructors":true
+},
+{
+  "name":"org.apache.kafka.server.logger.LoggingControllerMBean",
+  "queryAllPublicMethods":true
+},
+{
+  "name":"org.apache.kafka.server.share.persister.DefaultStatePersister",
+  
"methods":[{"name":"<init>","parameterTypes":["org.apache.kafka.server.share.persister.PersisterStateManager"]
 }]
+},
 {
   
"name":"org.apache.kafka.storage.internals.checkpoint.CleanShutdownFileHandler$Content",
   "allDeclaredFields":true,

Reply via email to