sttp icon indicating copy to clipboard operation
sttp copied to clipboard

SslHandshakeTimeoutException: handshake timed out after 10000ms

Open vuhainguyen opened this issue 2 years ago • 1 comments

Hi, I hit a timeout exception from time to time with our application using sttpClient imported from async-http-client-backend-cats. We deployed with K8s but I saw this exception only on Azure AKS not on google GKE, maybe smthing odd with AKS? Or this might be an issue with io.netty not sttp directly 🤔 . I include here a stack trace. Any suggestion are welcomed hehe 😁

sttp.client3.SttpClientException$ConnectException: Exception when sending request: POST https://blablabla
	at sttp.client3.SttpClientException$.defaultExceptionToSttpClientException(SttpClientException.scala:35)
	at sttp.client3.asynchttpclient.AsyncHttpClientBackend.$anonfun$adjustExceptions$1(AsyncHttpClientBackend.scala:227)
	at sttp.client3.SttpClientException$$anonfun$adjustExceptions$1.applyOrElse(SttpClientException.scala:59)
	at sttp.client3.SttpClientException$$anonfun$adjustExceptions$1.applyOrElse(SttpClientException.scala:58)
	at cats.ApplicativeError.$anonfun$recoverWith$1(ApplicativeError.scala:151)
	at cats.data.KleisliApplicativeError.$anonfun$handleErrorWith$2(Kleisli.scala:646)
	at delay @ sttp.client3.impl.cats.CatsMonadAsyncError.$anonfun$async$1(CatsMonadAsyncError.scala:10)
	at $anonfun$uncancelable$4 @ com.cognite.microservice.trace.SpanTraced$$anon$1.apply(KleisliSpanTrace.scala:19)
Caused by: java.net.ConnectException: handshake timed out after 10000ms
	at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:179)
	at org.asynchttpclient.netty.channel.NettyConnectListener$1.onFailure(NettyConnectListener.java:151)
	at org.asynchttpclient.netty.SimpleFutureListener.operationComplete(SimpleFutureListener.java:26)
	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
	at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571)
	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550)
	at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
	at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
	at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:609)
	at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117)
	at io.netty.handler.ssl.SslHandler$5.run(SslHandler.java:2090)
	at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)
	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:170)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:829)
	... 2 more
Caused by: io.netty.handler.ssl.SslHandshakeTimeoutException: handshake timed out after 10000ms
	at io.netty.handler.ssl.SslHandler$5.run(SslHandler.java:2087)
	at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)
	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:170)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:829)

vuhainguyen avatar Dec 05 '22 08:12 vuhainguyen

I think there's a conneciton problem when trying to hit the https endpoint located at https://blablabla. It seems the other side is not responding. I don't think that's anything sttp-specific. Google suggests a couple of possible causes.

adamw avatar Dec 06 '22 13:12 adamw