Morten Bøgeskov created KAFKA-19839:
---------------------------------------
Summary: Native-image (dockerimage) does not work with
compression.type=zstd
Key: KAFKA-19839
URL: https://issues.apache.org/jira/browse/KAFKA-19839
Project: Kafka
Issue Type: Bug
Components: docker
Affects Versions: 4.1.1
Environment: Docker image: apache/kafka-native:4.1.1-rc2
JavaClient: org.apache.kafka:kafka-clients:4.1.0
Reporter: Morten Bøgeskov
When sending records to a topic created like this:
{quote}
admin.createTopics(List.of(new NewTopic("foo", 24, (short) 1)
.configs(Map.of(TopicConfig.COMPRESSION_TYPE_CONFIG,"zstd"))));
{quote}
With a producer configured with:
{quote}
producerProps.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "zstd");
{quote}
The server fails with:
{quote}
[TIMESTAMP] ERROR [ReplicaManager broker=1] Error processing append operation
on partition Z6OCnSwIS9KVFCN2gLaxnQ:foo-1 (kafka.server.ReplicaManager)
java.lang.NoSuchFieldError:
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.dstPos
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getFieldID(JNIFunctions.java:1357)
~[?:?]
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions.GetFieldID(JNIFunctions.java:449)
~[?:?]
at
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.resetCStream(Native Method)
~[?:?]
at
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close(ZstdOutputStreamNoFinalizer.java:423)
~[?:?]
at
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close(ZstdOutputStreamNoFinalizer.java:405)
~[?:?]
...
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:211)
[kafka.Kafka:?]
Suppressed: java.lang.NoSuchFieldError:
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.dstPos
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getFieldID(JNIFunctions.java:1357)
~[?:?]
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions.GetFieldID(JNIFunctions.java:449)
~[?:?]
at
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.resetCStream(Native Method)
~[?:?]
...
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:211)
[kafka.Kafka:?]
Suppressed: java.lang.NoSuchFieldError:
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.dstPos
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getFieldID(JNIFunctions.java:1357)
~[?:?]
at
org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions.GetFieldID(JNIFunctions.java:449)
~[?:?]
at
com.github.luben.zstd.ZstdOutputStreamNoFinalizer.resetCStream(Native Method)
~[?:?]
{quote}
The file: {{docker/native/native-image-configs/jni-config.json}} seems to have
it referred:
{quote}
{
"name":"com.github.luben.zstd.ZstdInputStreamNoFinalizer",
"fields":[{"name":"dstPos"}, {"name":"srcPos"}]
},
{quote}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)