WebClient fails with handshake timed out after 10000ms after system restart even tho program terminates in 2369ms

See original GitHub issue

I am seeing a strange issue with native image when using webclient. Its consistently happening in my system

  1. If I run the program without native build (i.e on JVM), the program doesnt throw exception
  2. It doesnt fail if I build the native image & run executable i.e immediately after build but before system restart
  3. But if I restart the system & run native executable (thats built before system restart), it fails with this exception, while jar based version doesnt fail
time /home/x/dev/spring-native-netty-timeout-bug/build/native/nativeCompile/spring-native-netty-timeout-bug 
2022-08-21 14:55:44.016  INFO 3812 --- [           main] o.s.nativex.NativeListener               : AOT mode enabled
2022-08-21 14:55:44.017  INFO 3812 --- [           main] com.acme.DemoApplication                 : Starting DemoApplication using Java 17.0.4 on playground with PID 3812 (/home/x/dev/spring-native-netty-timeout-bug/build/native/nativeCompile/spring-native-netty-timeout-bug started by x in /home/x)
2022-08-21 14:55:44.017 DEBUG 3812 --- [           main] com.acme.DemoApplication                 : Running with Spring Boot v2.7.1, Spring v5.3.21
2022-08-21 14:55:44.017  INFO 3812 --- [           main] com.acme.DemoApplication                 : No active profile set, falling back to 1 default profile: "default"
2022-08-21 14:55:44.048  INFO 3812 --- [           main] com.acme.DemoApplication                 : Started DemoApplication in 0.045 seconds (JVM running for 0.047)
2022-08-21 14:55:44.056 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba] REGISTERED
2022-08-21 14:55:44.075 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba] CONNECT: httpbin.org/52.87.105.151:443
2022-08-21 14:55:44.329 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba, L:/192.168.1.7:48060 - R:httpbin.org/52.87.105.151:443] ACTIVE
2022-08-21 14:55:44.329 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba, L:/192.168.1.7:48060 - R:httpbin.org/52.87.105.151:443] USER_EVENT: SslHandshakeCompletionEvent(io.netty.handler.ssl.SslHandshakeTimeoutException: handshake timed out after 10000ms)
2022-08-21 14:55:44.330  WARN 3812 --- [ctor-http-nio-2] r.netty.http.client.HttpClientConnect    : [d8c063ba, L:/192.168.1.7:48060 - R:httpbin.org/52.87.105.151:443] The connection observed an error

io.netty.handler.ssl.SslHandshakeTimeoutException: handshake timed out after 10000ms
	at io.netty.handler.ssl.SslHandler$7.run(SslHandler.java:2115) ~[na:na]
	at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:153) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[na:na]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[na:na]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[na:na]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[na:na]
	at java.lang.Thread.run(Thread.java:833) ~[spring-native-netty-timeout-bug:na]
	at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:705) ~[spring-native-netty-timeout-bug:na]
	at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:202) ~[na:na]

2022-08-21 14:55:44.330 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba, L:/192.168.1.7:48060 ! R:httpbin.org/52.87.105.151:443] USER_EVENT: SslCloseCompletionEvent(java.nio.channels.ClosedChannelException)
2022-08-21 14:55:44.330 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba, L:/192.168.1.7:48060 ! R:httpbin.org/52.87.105.151:443] INACTIVE
2022-08-21 14:55:44.331 DEBUG 3812 --- [ctor-http-nio-2] com.acme.ApiAccessor                     : [d8c063ba, L:/192.168.1.7:48060 ! R:httpbin.org/52.87.105.151:443] UNREGISTERED
2022-08-21 14:55:44.331 ERROR 3812 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to execute ApplicationRunner
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765) ~[spring-native-netty-timeout-bug:2.7.1]
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752) ~[spring-native-netty-timeout-bug:2.7.1]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-native-netty-timeout-bug:2.7.1]
	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164) ~[na:na]
	at com.acme.DemoApplication.main(DemoApplication.java:22) ~[spring-native-netty-timeout-bug:na]
Caused by: org.springframework.web.reactive.function.client.WebClientRequestException: handshake timed out after 10000ms; nested exception is io.netty.handler.ssl.SslHandshakeTimeoutException: handshake timed out after 10000ms
	at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141) ~[na:na]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	*__checkpoint β‡’ Request to GET https://httpbin.org/get [DefaultWebClient]
Original Stack Trace:
		at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141) ~[na:na]
		at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55) ~[na:na]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4397) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[na:na]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[na:na]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[na:na]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[na:na]
		at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[na:na]
		at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274) ~[na:na]
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100) ~[na:na]
		at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:308) ~[na:na]
		at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:204) ~[na:na]
		at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:454) ~[spring-native-netty-timeout-bug:1.0.20]
		at reactor.netty.channel.ChannelOperationsHandler.exceptionCaught(ChannelOperationsHandler.java:129) ~[na:na]
		at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145) ~[na:na]
		at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at reactor.netty.tcp.SslProvider$SslReadHandler.userEventTriggered(SslProvider.java:850) ~[na:na]
		at io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:346) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:332) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered(AbstractChannelHandlerContext.java:324) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.handler.logging.LoggingHandler.userEventTriggered(LoggingHandler.java:222) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:346) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:332) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered(AbstractChannelHandlerContext.java:324) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.handler.ssl.SslUtils.handleHandshakeFailure(SslUtils.java:443) ~[na:na]
		at io.netty.handler.ssl.SslHandler$7.run(SslHandler.java:2119) ~[na:na]
		at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:153) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[spring-native-netty-timeout-bug:4.1.78.Final]
		at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[na:na]
		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[na:na]
		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[na:na]
		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[na:na]
		at java.lang.Thread.run(Thread.java:833) ~[spring-native-netty-timeout-bug:na]
		at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:705) ~[spring-native-netty-timeout-bug:na]
		at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:202) ~[na:na]
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) ~[spring-native-netty-timeout-bug:3.4.19]
		at reactor.core.publisher.Mono.block(Mono.java:1707) ~[spring-native-netty-timeout-bug:3.4.19]
		at com.acme.DemoApplication.lambda$onInit$0(DemoApplication.java:27) ~[spring-native-netty-timeout-bug:na]
		at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762) ~[spring-native-netty-timeout-bug:2.7.1]
		at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752) ~[spring-native-netty-timeout-bug:2.7.1]
		at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-native-netty-timeout-bug:2.7.1]
		at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164) ~[na:na]
		at com.acme.DemoApplication.main(DemoApplication.java:22) ~[spring-native-netty-timeout-bug:na]
Caused by: io.netty.handler.ssl.SslHandshakeTimeoutException: handshake timed out after 10000ms
	at io.netty.handler.ssl.SslHandler$7.run(SslHandler.java:2115) ~[na:na]
	at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:153) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[spring-native-netty-timeout-bug:4.1.78.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[na:na]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[na:na]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[na:na]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[na:na]
	at java.lang.Thread.run(Thread.java:833) ~[spring-native-netty-timeout-bug:na]
	at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:705) ~[spring-native-netty-timeout-bug:na]
	at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:202) ~[na:na]

   0.04s  user 0.05s system 3% cpu 2.346 total

When I run same program with jar, I get following output

java -jar /home/x/dev/spring-native-netty-timeout-bug/build/libs/spring-native-netty-timeout-bug-0.0.1-SNAPSHOT.jar
2022-08-21 15:10:27.820  INFO 5865 --- [           main] o.s.nativex.NativeListener               : AOT mode disabled
2022-08-21 15:10:27.940  INFO 5865 --- [           main] com.acme.DemoApplication                 : Starting DemoApplication using Java 17.0.4 on playground with PID 5865 (/home/x/dev/spring-native-netty-timeout-bug/build/libs/spring-native-netty-timeout-bug-0.0.1-SNAPSHOT.jar started by x in /home/x/dev/spring-native-netty-timeout-bug)
2022-08-21 15:10:27.940 DEBUG 5865 --- [           main] com.acme.DemoApplication                 : Running with Spring Boot v2.7.1, Spring v5.3.21
2022-08-21 15:10:27.942  INFO 5865 --- [           main] com.acme.DemoApplication                 : No active profile set, falling back to 1 default profile: "default"
2022-08-21 15:10:29.256  INFO 5865 --- [           main] com.acme.DemoApplication                 : Started DemoApplication in 2.044 seconds (JVM running for 2.725)
2022-08-21 15:10:30.209 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b] REGISTERED
2022-08-21 15:10:30.283 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b] CONNECT: httpbin.org/34.227.213.82:443
2022-08-21 15:10:30.607 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] ACTIVE
2022-08-21 15:10:30.859 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] READ COMPLETE
2022-08-21 15:10:30.964 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] READ COMPLETE
2022-08-21 15:10:31.216 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] USER_EVENT: SslHandshakeCompletionEvent(SUCCESS)
2022-08-21 15:10:31.247 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b-1, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] WRITE: 99B GET /get HTTP/1.1
user-agent: ReactorNetty/1.0.20
host: httpbin.org
Accept: application/json


2022-08-21 15:10:31.248 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b-1, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] FLUSH
2022-08-21 15:10:31.252 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b-1, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] WRITE: 0B
2022-08-21 15:10:31.252 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b-1, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] FLUSH
2022-08-21 15:10:31.253 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b-1, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] READ COMPLETE
2022-08-21 15:10:31.500 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b-1, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] READ: 506B HTTP/1.1 200 OK
Date: Sun, 21 Aug 2022 09:40:31 GMT
Content-Type: application/json
Content-Length: 276
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
  "args": {}, 
  "headers": {
    "Accept": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "ReactorNetty/1.0.20", 
    "X-Amzn-Trace-Id": "Root=1-6301fd8f-0d26170512f1dca7432ea37a"
  }, 
  "origin": "122.171.23.69", 
  "url": "https://httpbin.org/get"
}

2022-08-21 15:10:31.629 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 - R:httpbin.org/34.227.213.82:443] READ COMPLETE
GetResponse[headers=Headers[accept=application/json]]
2022-08-21 15:10:31.650 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 ! R:httpbin.org/34.227.213.82:443] CLOSE
2022-08-21 15:10:31.653 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 ! R:httpbin.org/34.227.213.82:443] USER_EVENT: SslCloseCompletionEvent(java.nio.channels.ClosedChannelException)
2022-08-21 15:10:31.653 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 ! R:httpbin.org/34.227.213.82:443] INACTIVE
2022-08-21 15:10:31.653 DEBUG 5865 --- [or-http-epoll-2] com.acme.ApiAccessor                     : [3266e03b, L:/192.168.1.7:60608 ! R:httpbin.org/34.227.213.82:443] UNREGISTERED

I see this consistently happening after I restart the system. The binary doesnt work even after multiple runs. I even tried running it after I ran jar version on JVM (to see if DNS resolution at OS level caused this issue β€” my uneducated guess work as I am not sure if netty does DNS resolution by itself/delegates to OS πŸ˜„). But it ran successfully when I created the image initally using ./gradlew nativeCompile before I restarted the system.

Version info

  1. Java
openjdk version "17.0.4" 2022-07-19
OpenJDK Runtime Environment Temurin-17.0.4+8 (build 17.0.4+8)
OpenJDK 64-Bit Server VM Temurin-17.0.4+8 (build 17.0.4+8, mixed mode, sharing)
  1. OS Ubuntu 20.04.4 LTS
  2. Graal VM 22.2.r17-grl
  3. Spring & Gradle versions can be found at this minimum reproducible sample

Issue Analytics

  • State:closed
  • Created a year ago
  • Reactions:1
  • Comments:23

github_iconTop GitHub Comments

2reactions
mhalbrittercommented, Aug 24, 2022

It’s a variation of this bug: https://github.com/oracle/graal/issues/4809

There are hints for Netty handlers missing. Run your application with the native-image agent attached and look in the JSON for ChannelHandler classes. These are the classes Netty uses in their pipeline for your use case (i think they even depend on your operating system, but not sure). You can then use those classes to add @TypeHint in your code.

1reaction
steincodaboxcommented, Aug 24, 2022

Currently using 0.11.5 with spring boot 2.6.7 instead of 0.12.1 with 2.7.1 seems to bypass the issue

Read more comments on GitHub >

github_iconTop Results From Across the Web

Spring Webclient always gives error timed out - Stack Overflow
I decide to make another spring boot api project to test whether it's the Webclient problem, but it actually isn't. After that, I...
Read more >
Fix Your Game Requires A System Restart To Play Valorant ...
This tutorial will show you how to fix your game requires a system restart to play Valorant error. There are several solutions for...
Read more >
Error: "...pending system changes that require a reboot" when ...
When you install or upgrade the Symantec Endpoint Protection (SEP) client or manager you see the following error:.
Read more >
Spring-Projects-Experimental Spring-Native Issues - IssueHint
Issue Title State Comments Created Date Update... Add Java 19 Support in AOT plugin closed 1 2022‑10‑03 2022‑10... Request to add native support for Feign...
Read more >
thekalinga ( Ashok Koyi ) - github record :)
WebClient fails with handshake timed out after 10000ms after system restart even tho program terminates in 2369ms. @steincodabox Sorry. No, not yet.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found