[
https://issues.apache.org/jira/browse/RANGER-5642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Madhan Neethiraj updated RANGER-5642:
-------------------------------------
Description:
{{ranger-kafka}} container, built with the latest master branch, fails in
sending audit logs to Ranger audit server with the following error:
{noformat}
Jun 13, 2026 2:39:54 PM
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor
aroundWriteTo
SEVERE: MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
[2026-06-13 14:39:54,107] ERROR Failed to post audit events in privileged
action: MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
(org.apache.ranger.audit.destination.RangerAuditServerDestination)
[2026-06-13 14:39:54,107] ERROR Failed to send audit batch of 1 events. Error:
MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
(org.apache.ranger.audit.destination.RangerAuditServerDestination)
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:
MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
at
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:224)
at
org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139)
at
org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1116)
at
org.glassfish.jersey.client.ClientRequest.doWriteEntity(ClientRequest.java:461)
at
org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:443)
at
org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:400)
at
org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:273)
at
org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:300)
at
org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
at
org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
at
org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
at
org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
at
org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
at
org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:439)
at
org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:345)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.postAuditEvents(RangerAuditServerDestination.java:279)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.lambda$sendBatch$0(RangerAuditServerDestination.java:206)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.base/javax.security.auth.Subject.doAs(Subject.java:439)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
at
org.apache.ranger.audit.provider.MiscUtil.executePrivilegedAction(MiscUtil.java:553)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.sendBatch(RangerAuditServerDestination.java:204)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.logAsBatch(RangerAuditServerDestination.java:160)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.log(RangerAuditServerDestination.java:140)
at
org.apache.ranger.audit.queue.AuditBatchQueue.runLogAudit(AuditBatchQueue.java:327)
at
org.apache.ranger.audit.queue.AuditBatchQueue.run(AuditBatchQueue.java:236)
at java.base/java.lang.Thread.run(Thread.java:840)
[2026-06-13 14:39:54,108] ERROR Failed to send batch of 1 events
(org.apache.ranger.audit.destination.RangerAuditServerDestination)
[2026-06-13 14:39:54,109] WARN failed to log audit event:
{"repoType":9,"repo":"dev_kafka","reqUser":"kafka","evtTime":"2026-06-13
14:39:51.237","access":"cluster_action","resource":"kafka-cluster","resType":"cluster","action":"cluster_action","result":1,"agent":"kafka","policy":-1,"enforcer":"ranger-acl","cliIP":"172.18.0.13","reqData":"kafka-cluster","agentHost":"ranger-kafka.rangernw","logType":"RangerAudit","id":"0df2a5e4-2545-432b-b457-c05c0f64ca25-100019","seq_num":300080,"event_count":4,"event_dur_ms":712}
, errorMessage= (org.apache.ranger.audit.provider.BaseAuditHandler)
[2026-06-13 14:39:54,110] WARN Log failure count: 26 in past 01:02.971 minutes;
27 during process lifetime (org.apache.ranger.audit.provider.BaseAuditHandler)
{noformat}
2 different versions of four jackson libraries are present in plugin's
classpath: version 2.16.2 included in Kafka, and version 2.17.2 included in
Ranger plugin. I am not sure if this is the root cause, but duplicates need to
be avoided.
- jackson-annotations
- jackson-core
- jackson-databind
- jackson-jaxrs-json-provider
{noformat}
# find /opt/ -name "*jackson*.jar" | sort
/opt/kafka_2.12-3.9.1/libs/jackson-annotations-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-core-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-databind-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-dataformat-csv-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-datatype-jdk8-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-jaxrs-base-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-jaxrs-json-provider-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-module-afterburner-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-module-jaxb-annotations-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-module-scala_2.12-2.16.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-annotations-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-core-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-databind-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-jaxrs-json-provider-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jersey-media-json-jackson-2.47.jar
{noformat}
In addition, following libraries are also present in both Kafka and Ranger
plugin:
- commons-collections
- commons-io
- commons-logging
- protobuf-java
was:
{{ranger-kafka}} container, built with the latest master branch, fails in
sending audit logs to Ranger audit server with the following error:
{noformat}
Jun 13, 2026 2:39:54 PM
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor
aroundWriteTo
SEVERE: MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
[2026-06-13 14:39:54,107] ERROR Failed to post audit events in privileged
action: MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
(org.apache.ranger.audit.destination.RangerAuditServerDestination)
[2026-06-13 14:39:54,107] ERROR Failed to send audit batch of 1 events. Error:
MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
(org.apache.ranger.audit.destination.RangerAuditServerDestination)
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:
MessageBodyWriter not found for media type=application/json, type=class
java.util.ArrayList, genericType=class java.util.ArrayList.
at
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:224)
at
org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139)
at
org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1116)
at
org.glassfish.jersey.client.ClientRequest.doWriteEntity(ClientRequest.java:461)
at
org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:443)
at
org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:400)
at
org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:273)
at
org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:300)
at
org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
at
org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
at
org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
at
org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
at
org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
at
org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:439)
at
org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:345)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.postAuditEvents(RangerAuditServerDestination.java:279)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.lambda$sendBatch$0(RangerAuditServerDestination.java:206)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.base/javax.security.auth.Subject.doAs(Subject.java:439)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
at
org.apache.ranger.audit.provider.MiscUtil.executePrivilegedAction(MiscUtil.java:553)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.sendBatch(RangerAuditServerDestination.java:204)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.logAsBatch(RangerAuditServerDestination.java:160)
at
org.apache.ranger.audit.destination.RangerAuditServerDestination.log(RangerAuditServerDestination.java:140)
at
org.apache.ranger.audit.queue.AuditBatchQueue.runLogAudit(AuditBatchQueue.java:327)
at
org.apache.ranger.audit.queue.AuditBatchQueue.run(AuditBatchQueue.java:236)
at java.base/java.lang.Thread.run(Thread.java:840)
[2026-06-13 14:39:54,108] ERROR Failed to send batch of 1 events
(org.apache.ranger.audit.destination.RangerAuditServerDestination)
[2026-06-13 14:39:54,109] WARN failed to log audit event:
{"repoType":9,"repo":"dev_kafka","reqUser":"kafka","evtTime":"2026-06-13
14:39:51.237","access":"cluster_action","resource":"kafka-cluster","resType":"cluster","action":"cluster_action","result":1,"agent":"kafka","policy":-1,"enforcer":"ranger-acl","cliIP":"172.18.0.13","reqData":"kafka-cluster","agentHost":"ranger-kafka.rangernw","logType":"RangerAudit","id":"0df2a5e4-2545-432b-b457-c05c0f64ca25-100019","seq_num":300080,"event_count":4,"event_dur_ms":712}
, errorMessage= (org.apache.ranger.audit.provider.BaseAuditHandler)
[2026-06-13 14:39:54,110] WARN Log failure count: 26 in past 01:02.971 minutes;
27 during process lifetime (org.apache.ranger.audit.provider.BaseAuditHandler)
{noformat}
2 different versions of four jackson libraries are present in plugin's
classpath: version 2.16.2 included in Kafka, and version 2.17.2 included in
Ranger plugin. I am not sure if this is the root cause, but duplicates need to
be avoided.
- jackson-annotations
- jackson-core
- jackson-databind
- jackson-jaxrs-json-provider
{noformat}
# find /opt/ -name "*jackson*.jar" | sort
/opt/kafka_2.12-3.9.1/libs/jackson-annotations-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-core-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-databind-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-dataformat-csv-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-datatype-jdk8-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-jaxrs-base-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-jaxrs-json-provider-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-module-afterburner-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-module-jaxb-annotations-2.16.2.jar
/opt/kafka_2.12-3.9.1/libs/jackson-module-scala_2.12-2.16.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-annotations-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-core-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-databind-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-jaxrs-json-provider-2.17.2.jar
/opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jersey-media-json-jackson-2.47.jar
{noformat}
> Kafka plugin fails to send audit logs to audit server: MessageBodyWriter not
> found for media type=application/json
> ------------------------------------------------------------------------------------------------------------------
>
> Key: RANGER-5642
> URL: https://issues.apache.org/jira/browse/RANGER-5642
> Project: Ranger
> Issue Type: Bug
> Components: audit, plugins
> Reporter: Madhan Neethiraj
> Priority: Major
>
> {{ranger-kafka}} container, built with the latest master branch, fails in
> sending audit logs to Ranger audit server with the following error:
> {noformat}
> Jun 13, 2026 2:39:54 PM
> org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor
> aroundWriteTo
> SEVERE: MessageBodyWriter not found for media type=application/json,
> type=class java.util.ArrayList, genericType=class java.util.ArrayList.
> [2026-06-13 14:39:54,107] ERROR Failed to post audit events in privileged
> action: MessageBodyWriter not found for media type=application/json,
> type=class java.util.ArrayList, genericType=class java.util.ArrayList.
> (org.apache.ranger.audit.destination.RangerAuditServerDestination)
> [2026-06-13 14:39:54,107] ERROR Failed to send audit batch of 1 events.
> Error: MessageBodyWriter not found for media type=application/json,
> type=class java.util.ArrayList, genericType=class java.util.ArrayList.
> (org.apache.ranger.audit.destination.RangerAuditServerDestination)
> org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:
> MessageBodyWriter not found for media type=application/json, type=class
> java.util.ArrayList, genericType=class java.util.ArrayList.
> at
> org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:224)
> at
> org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139)
> at
> org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1116)
> at
> org.glassfish.jersey.client.ClientRequest.doWriteEntity(ClientRequest.java:461)
> at
> org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:443)
> at
> org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:400)
> at
> org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:273)
> at
> org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:300)
> at
> org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
> at
> org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
> at
> org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
> at
> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
> at
> org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
> at
> org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
> at
> org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:439)
> at
> org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:345)
> at
> org.apache.ranger.audit.destination.RangerAuditServerDestination.postAuditEvents(RangerAuditServerDestination.java:279)
> at
> org.apache.ranger.audit.destination.RangerAuditServerDestination.lambda$sendBatch$0(RangerAuditServerDestination.java:206)
> at
> java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
> at java.base/javax.security.auth.Subject.doAs(Subject.java:439)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
> at
> org.apache.ranger.audit.provider.MiscUtil.executePrivilegedAction(MiscUtil.java:553)
> at
> org.apache.ranger.audit.destination.RangerAuditServerDestination.sendBatch(RangerAuditServerDestination.java:204)
> at
> org.apache.ranger.audit.destination.RangerAuditServerDestination.logAsBatch(RangerAuditServerDestination.java:160)
> at
> org.apache.ranger.audit.destination.RangerAuditServerDestination.log(RangerAuditServerDestination.java:140)
> at
> org.apache.ranger.audit.queue.AuditBatchQueue.runLogAudit(AuditBatchQueue.java:327)
> at
> org.apache.ranger.audit.queue.AuditBatchQueue.run(AuditBatchQueue.java:236)
> at java.base/java.lang.Thread.run(Thread.java:840)
> [2026-06-13 14:39:54,108] ERROR Failed to send batch of 1 events
> (org.apache.ranger.audit.destination.RangerAuditServerDestination)
> [2026-06-13 14:39:54,109] WARN failed to log audit event:
> {"repoType":9,"repo":"dev_kafka","reqUser":"kafka","evtTime":"2026-06-13
> 14:39:51.237","access":"cluster_action","resource":"kafka-cluster","resType":"cluster","action":"cluster_action","result":1,"agent":"kafka","policy":-1,"enforcer":"ranger-acl","cliIP":"172.18.0.13","reqData":"kafka-cluster","agentHost":"ranger-kafka.rangernw","logType":"RangerAudit","id":"0df2a5e4-2545-432b-b457-c05c0f64ca25-100019","seq_num":300080,"event_count":4,"event_dur_ms":712}
> , errorMessage= (org.apache.ranger.audit.provider.BaseAuditHandler)
> [2026-06-13 14:39:54,110] WARN Log failure count: 26 in past 01:02.971
> minutes; 27 during process lifetime
> (org.apache.ranger.audit.provider.BaseAuditHandler)
> {noformat}
> 2 different versions of four jackson libraries are present in plugin's
> classpath: version 2.16.2 included in Kafka, and version 2.17.2 included in
> Ranger plugin. I am not sure if this is the root cause, but duplicates need
> to be avoided.
> - jackson-annotations
> - jackson-core
> - jackson-databind
> - jackson-jaxrs-json-provider
> {noformat}
> # find /opt/ -name "*jackson*.jar" | sort
> /opt/kafka_2.12-3.9.1/libs/jackson-annotations-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-core-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-databind-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-dataformat-csv-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-datatype-jdk8-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-jaxrs-base-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-jaxrs-json-provider-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-module-afterburner-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-module-jaxb-annotations-2.16.2.jar
> /opt/kafka_2.12-3.9.1/libs/jackson-module-scala_2.12-2.16.2.jar
> /opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-annotations-2.17.2.jar
> /opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-core-2.17.2.jar
> /opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-databind-2.17.2.jar
> /opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jackson-jaxrs-json-provider-2.17.2.jar
> /opt/ranger/ranger-3.0.0-SNAPSHOT-kafka-plugin/lib/ranger-kafka-plugin-impl/jersey-media-json-jackson-2.47.jar
> {noformat}
> In addition, following libraries are also present in both Kafka and Ranger
> plugin:
> - commons-collections
> - commons-io
> - commons-logging
> - protobuf-java
--
This message was sent by Atlassian Jira
(v8.20.10#820010)