docker-library / openjdk

Docker Official Image packaging for EA builds of OpenJDK from Oracle
http://openjdk.java.net
MIT License
1.14k stars 475 forks source link

/tmp/snappy-unknown-libsnappyjava.so: Error loading shared library ld-linux-x86-64.so.2: #439

Closed totee19 closed 3 years ago

totee19 commented 3 years ago

Hello,

We build a docker image from openjdk:14-jdk-alpine and we add springboot embedded with our java api.

It's working fine until today pod give this error message:

java.lang.UnsatisfiedLinkError: /tmp/snappy-unknown-a8786dca-a71e-4bd0-9e9c-7af660e76e13-libsnappyjava.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/snappy-unknown-a8786dca-a71e-4bd0-9e9c-7af660e76e13-libsnappyjava.so)
    at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[na:na]
    at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2452) ~[na:na]
    at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2508) ~[na:na]
    at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2704) ~[na:na]
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2637) ~[na:na]
    at java.base/java.lang.Runtime.load0(Runtime.java:745) ~[na:na]
    at java.base/java.lang.System.load(System.java:1871) ~[na:na]
    at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:166) ~[snappy-java-1.1.1.3.jar!/:na]
    at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:145) ~[snappy-java-1.1.1.3.jar!/:na]
    at org.xerial.snappy.Snappy.<clinit>(Snappy.java:47) ~[snappy-java-1.1.1.3.jar!/:na]
    at org.xerial.snappy.SnappyInputStream.hasNextChunk(SnappyInputStream.java:351) ~[snappy-java-1.1.1.3.jar!/:na]
    at org.xerial.snappy.SnappyInputStream.read(SnappyInputStream.java:384) ~[snappy-java-1.1.1.3.jar!/:na]
    at java.base/java.io.DataInputStream.readByte(DataInputStream.java:269) ~[na:na]
    at org.apache.kafka.common.utils.ByteUtils.readVarint(ByteUtils.java:168) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.common.record.DefaultRecord.readFrom(DefaultRecord.java:293) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.common.record.DefaultRecordBatch$1.readNext(DefaultRecordBatch.java:264) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.common.record.DefaultRecordBatch$RecordIterator.next(DefaultRecordBatch.java:569) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.common.record.DefaultRecordBatch$RecordIterator.next(DefaultRecordBatch.java:538) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.internals.Fetcher$PartitionRecords.nextFetchedRecord(Fetcher.java:1452) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.internals.Fetcher$PartitionRecords.fetchRecords(Fetcher.java:1487) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.internals.Fetcher$PartitionRecords.access$1600(Fetcher.java:1332) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.internals.Fetcher.fetchRecords(Fetcher.java:645) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:606) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.KafkaConsumer.pollForFetches(KafkaConsumer.java:1294) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1225) ~[kafka-clients-2.3.1.jar!/:na]
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1201) ~[kafka-clients-2.3.1.jar!/:na]
    at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doPoll(KafkaMessageListenerContainer.java:993) ~[spring-kafka-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:949) ~[spring-kafka-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:901) ~[spring-kafka-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]

Any idea why this behavior appear now ? It seem we not touch something on our k8s

Best regards, Tie

wglambert commented 3 years ago

That version isn't supported by upstream (and consequently not by us either) https://github.com/docker-library/openjdk/pull/438

JDK 14 has been superseded.

The Alpine variant also never made it to GA

https://github.com/docker-library/openjdk/issues/272

openjdk 14, Alpine - not production-ready because it hasn’t been tested thoroughly enough to be considered GA, see 485e574 and https://jdk.java.net/14/

As for fixing the issue you'd want to install libc6-compat https://stackoverflow.com/a/51655643 And if that doesn't work then you could try the workaround below that one https://stackoverflow.com/a/55568352

But I'm going to close since that version and variant are both not supported by upstream. You could also try asking over at the Docker Community Forums, Docker Community Slack, or Stack Overflow. Since these repos aren't really a user-help forum