-
Notifications
You must be signed in to change notification settings - Fork 691
Description
Hello Reactor Netty team,
I have to be honest here. I am not sure this is the correct repo to file this issue.
However, please bear with me, as this seems to be a genuine issue.
SpribgBoot 4.0.0 just got released.
We are migrating our reactive 3.5.x app to SpringBoot 4.0.0.
For non graalVM native version of our app, the migration went well, no issues, no issues at build time, no issues at run time.
However, as our 3.5.x app was a graalVM native image, we would like to keep using it.
While there is no issue in building the app, when running the app, this issue is happening:
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /tmp/libnetty_quiche42_linux_x86_649563780249379016557.so
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibraries.loadLibraryAbsolute(NativeLibraries.java:105)
at [email protected]/java.lang.ClassLoader.loadLibrary(ClassLoader.java:143)
at [email protected]/java.lang.Runtime.load0(Runtime.java:767)
at [email protected]/java.lang.System.load(System.java:1646)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:36)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:395)
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:218)
at io.netty.handler.codec.quic.Quiche.loadNativeLibrary(Quiche.java:80)
at io.netty.handler.codec.quic.Quiche.<clinit>(Quiche.java:59)
at io.netty.handler.codec.quic.Quic.<clinit>(Quic.java:46)
at io.netty.handler.codec.quic.QuicheQuicSslContext.<clinit>(QuicheQuicSslContext.java:81)
at io.netty.handler.codec.quic.QuicSslContextBuilder.build(QuicSslContextBuilder.java:402)
... 75 more
Suppressed: java.lang.UnsatisfiedLinkError: Can't load library: /tmp/libnetty_quiche42_linux_x86_649563780249379016557.so
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibraries.loadLibraryAbsolute(NativeLibraries.java:105)
at [email protected]/java.lang.ClassLoader.loadLibrary(ClassLoader.java:143)
at [email protected]/java.lang.Runtime.load0(Runtime.java:767)
at [email protected]/java.lang.System.load(System.java:1646)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:36)
at [email protected]/java.lang.reflect.Method.invoke(Method.java:565)
at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:421)
at [email protected]/java.security.AccessController.doPrivileged(AccessController.java:74)
at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:413)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:387)
... 81 more
Suppressed: java.lang.UnsatisfiedLinkError: Can't load library: netty_quiche42_linux_x86_64 | java.library.path = [/usr/lib64, /lib64, /lib, /usr/lib]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibraries.loadLibraryRelative(NativeLibraries.java:141)
at [email protected]/java.lang.ClassLoader.loadLibrary(ClassLoader.java:135)
at [email protected]/java.lang.Runtime.loadLibrary0(Runtime.java:822)
at [email protected]/java.lang.System.loadLibrary(System.java:1685)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:395)
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:166)
... 80 more
Suppressed: java.lang.UnsatisfiedLinkError: Can't load library: netty_quiche42_linux_x86_64 | java.library.path = [/usr/lib64, /lib64, /lib, /usr/lib]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibraries.loadLibraryRelative(NativeLibraries.java:141)
at [email protected]/java.lang.ClassLoader.loadLibrary(ClassLoader.java:135)
at [email protected]/java.lang.Runtime.loadLibrary0(Runtime.java:822)
at [email protected]/java.lang.System.loadLibrary(System.java:1685)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at [email protected]/java.lang.reflect.Method.invoke(Method.java:565)
at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:421)
at [email protected]/java.security.AccessController.doPrivileged(AccessController.java:74)
at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:413)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:387)
... 81 more
Steps to reproduce
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.0.0</version>
<relativePath/>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<env>
<BP_JVM_VERSION>25</BP_JVM_VERSION>
</env>
</image>
</configuration>
</plugin>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
</plugin>
Here is the reference to web client:
@Bean
public WebClient getWebClient(final WebClient.Builder builder) {
final var clientHttpConnector = new ReactorClientHttpConnector(HttpClient.create().wiretap(true).protocol(HttpProtocol.HTTP11));
return builder.baseUrl(hostAndPort).defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).clientConnector(clientHttpConnector).build();
}
I understand this involves graalVM, springboot, etc, but from the error stacktrace, it seems (not sure) that it is related to Netty.
Could you please help with this issue?
Thank you for your time and good day