Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复ktor kotlin web框架上的内存泄漏_Java_Jvm_Visualvm_Heap Dump_Ktor - Fatal编程技术网

Java 如何修复ktor kotlin web框架上的内存泄漏

Java 如何修复ktor kotlin web框架上的内存泄漏,java,jvm,visualvm,heap-dump,ktor,Java,Jvm,Visualvm,Heap Dump,Ktor,嗨,我在kubernetes上运行ktor web服务器。当服务器实例启动时,它使用250-300 MB,但在运行几个小时后,内存使用增加到600MB,并且我已经将该服务器重启后的限制设置为600MB,因为OOM。为了在内存为500+时进行测试,我停止了所有服务器通信,并生成下面附加的堆转储。但问题是在等待数小时后,内存保持在500+MB。我认为应该恢复到正常的200-300MB。抱歉,我不擅长检查堆转储中的问题。你能检查一下并告诉我哪里有问题吗?谢谢 堆转储摘要 全转储链路 这里有几个线程转

嗨,我在kubernetes上运行ktor web服务器。当服务器实例启动时,它使用250-300 MB,但在运行几个小时后,内存使用增加到600MB,并且我已经将该服务器重启后的限制设置为600MB,因为OOM。为了在内存为500+时进行测试,我停止了所有服务器通信,并生成下面附加的堆转储。但问题是在等待数小时后,内存保持在500+MB。我认为应该恢复到正常的200-300MB。抱歉,我不擅长检查堆转储中的问题。你能检查一下并告诉我哪里有问题吗?谢谢

堆转储摘要

全转储链路 这里有几个线程转储

“主”优先级=5 tid=1定时\u等待
位于jdk.internal.misc.Unsafe.park(本机方法)
位于java.util.concurrent.locks.LockSupport.parknos()处
在kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:82)
在kotlinx.coroutines.BuildersKt\uuu BuildersKt.runBlocking(Builders.kt:54)
局部变量:kotlinx.coroutines.BlockingCoroutine#1
局部变量:kotlinx.coroutines.BlockingEventLoop#1
在kotlinx.coroutines.BuildersKt.runBlocking(:1)
在kotlinx.coroutines.BuildersKt\uuu BuildersKt.runBlocking$default(Builders.kt:36)
局部变量:kotlin.coroutines.EmptyCoroutineContext#1
在kotlinx.coroutines.BuildersKt.runBlocking$default(:1)
局部变量:io.ktor.server.cio.CIOApplicationEngine$start$2#1
在io.ktor.server.cio.CIOApplicationEngine.start(CIOApplicationEngine.kt:95)
局部变量:io.ktor.server.cio.CIOApplicationEngine#1
在com.example.myapp.ApplicationKt.main上(Application.kt:39)
局部变量:java.lang.String[]#33
局部变量:io.ktor.server.engine.ApplicationEngineEnvironment重新加载#1
“引用处理程序”守护程序prio=10 tid=2 RUNNABLE
位于java.lang.ref.Reference.waitForReferencePendingList(本机方法)
在java.lang.ref.Reference.processPendingReferences()中
在java.lang.ref.Reference$ReferenceHandler.run()处
“终结器”守护程序prio=8 tid=3正在等待
在java.lang.Object.wait(本机方法)
在java.lang.ref.ReferenceQueue.remove()处
局部变量:java.lang.ref.ReferenceQueue$Lock#57
在java.lang.ref.ReferenceQueue.remove()处
局部变量:java.lang.ref.ReferenceQueue#54
在java.lang.ref.Finalizer$FinalizerThread.run()处
局部变量:java.lang.System$2#1
“信号调度器”守护进程prio=9 tid=4 RUNNABLE
“通用清理器”守护程序prio=8 tid=9定时\u等待
在java.lang.Object.wait(本机方法)
在java.lang.ref.ReferenceQueue.remove()处
局部变量:java.lang.ref.ReferenceQueue$Lock#58
局部变量:java.lang.ref.ReferenceQueue#55
在jdk.internal.ref.CleanerImpl.run()处
局部变量:jdk.internal.ref.CleanerImpl#1
在java.lang.Thread.run()处
在jdk.internal.misc.InnocuousThread.run()处
“DefaultDispatcher-worker-1”守护进程prio=5 tid=10 TIMED_等待
位于jdk.internal.misc.Unsafe.park(本机方法)
位于java.util.concurrent.locks.LockSupport.parknos()处
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:783)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:728)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
“DefaultDispatcher-worker-2”守护程序prio=5 tid=11 TIMED_等待
位于jdk.internal.misc.Unsafe.park(本机方法)
位于java.util.concurrent.locks.LockSupport.parknos()处
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:783)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:728)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
“DefaultDispatcher-worker-3”守护进程优先级=5 tid=12可运行
at sun.nio.ch.EPoll.wait(本机方法)
在sun.nio.ch.EPollSelectorImpl.doSelect()上
在sun.nio.ch.SelectorImpl.lock和doselect()上
局部变量:sun.nio.ch.EPollSelectorImpl#1
局部变量:sun.nio.ch.Util$2#1
在sun.nio.ch.SelectorImpl.select()中
在io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:97)中
局部变量:io.ktor.network.selector.ActorSelectorManager#1
在io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
位于kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
局部变量:io.ktor.network.selector.ActorSelectorManager$process$1#1
局部变量:io.ktor.network.selector.ActorSelectorManager$select$1#1
在kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
局部变量:kotlin.coroutines.CombinedContext#5
局部变量:kotlinx.coroutines.DispatchedContinuation#2249
在kotlinx.coroutines.scheduling.CoroutineScheduler.runsafe(CoroutineScheduler.kt:571)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
在kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
“mysql cj放弃连接清理”守护程序prio=5 tid=14 TIMED_WAITING
在java.lang.Object.wait(本机方法)
在java.lang.ref.ReferenceQueue.remove()处
局部变量:java.lang.ref.ReferenceQueue$Lock#151
局部变量:java.lang.ref.ReferenceQueue#148
在com.mysql.cj.jdbc.放弃连接CleanupThread.run(放弃连接CleanupThread.java:85)
位于java.util.concurrent.ThreadPoolExecutor.runWorker()处
局部变量:com.mysql.cj.jdbc.ForwardedConnectionCleanupThread#1
局部变量:java.util。
    "main" prio=5 tid=1 TIMED_WAITING
    at jdk.internal.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(<unknown string>)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:82)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)
       local variable: kotlinx.coroutines.BlockingCoroutine#1
       local variable: kotlinx.coroutines.BlockingEventLoop#1
    at kotlinx.coroutines.BuildersKt.runBlocking(<unknown string>:1)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)
       local variable: kotlin.coroutines.EmptyCoroutineContext#1
    at kotlinx.coroutines.BuildersKt.runBlocking$default(<unknown string>:1)
       local variable: io.ktor.server.cio.CIOApplicationEngine$start$2#1
    at io.ktor.server.cio.CIOApplicationEngine.start(CIOApplicationEngine.kt:95)
       local variable: io.ktor.server.cio.CIOApplicationEngine#1
    at com.example.myapp.ApplicationKt.main(Application.kt:39)
       local variable: java.lang.String[]#33
       local variable: io.ktor.server.engine.ApplicationEngineEnvironmentReloading#1

"Reference Handler" daemon prio=10 tid=2 RUNNABLE
    at java.lang.ref.Reference.waitForReferencePendingList(Native Method)
    at java.lang.ref.Reference.processPendingReferences(<unknown string>)
    at java.lang.ref.Reference$ReferenceHandler.run(<unknown string>)

"Finalizer" daemon prio=8 tid=3 WAITING
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(<unknown string>)
       local variable: java.lang.ref.ReferenceQueue$Lock#57
    at java.lang.ref.ReferenceQueue.remove(<unknown string>)
       local variable: java.lang.ref.ReferenceQueue#54
    at java.lang.ref.Finalizer$FinalizerThread.run(<unknown string>)
       local variable: java.lang.System$2#1

"Signal Dispatcher" daemon prio=9 tid=4 RUNNABLE

"Common-Cleaner" daemon prio=8 tid=9 TIMED_WAITING
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(<unknown string>)
       local variable: java.lang.ref.ReferenceQueue$Lock#58
       local variable: java.lang.ref.ReferenceQueue#55
    at jdk.internal.ref.CleanerImpl.run(<unknown string>)
       local variable: jdk.internal.ref.CleanerImpl#1
    at java.lang.Thread.run(<unknown string>)
    at jdk.internal.misc.InnocuousThread.run(<unknown string>)

"DefaultDispatcher-worker-1" daemon prio=5 tid=10 TIMED_WAITING
    at jdk.internal.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(<unknown string>)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:783)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:728)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

"DefaultDispatcher-worker-2" daemon prio=5 tid=11 TIMED_WAITING
    at jdk.internal.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(<unknown string>)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:783)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:728)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

"DefaultDispatcher-worker-3" daemon prio=5 tid=12 RUNNABLE
    at sun.nio.ch.EPoll.wait(Native Method)
    at sun.nio.ch.EPollSelectorImpl.doSelect(<unknown string>)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(<unknown string>)
       local variable: sun.nio.ch.EPollSelectorImpl#1
       local variable: sun.nio.ch.Util$2#1
    at sun.nio.ch.SelectorImpl.select(<unknown string>)
    at io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:97)
       local variable: io.ktor.network.selector.ActorSelectorManager#1
    at io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       local variable: io.ktor.network.selector.ActorSelectorManager$process$1#1
       local variable: io.ktor.network.selector.ActorSelectorManager$select$1#1
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
       local variable: kotlin.coroutines.CombinedContext#5
       local variable: kotlinx.coroutines.DispatchedContinuation#2249
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

"mysql-cj-abandoned-connection-cleanup" daemon prio=5 tid=14 TIMED_WAITING
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(<unknown string>)
       local variable: java.lang.ref.ReferenceQueue$Lock#151
       local variable: java.lang.ref.ReferenceQueue#148
    at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:85)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(<unknown string>)
       local variable: com.mysql.cj.jdbc.AbandonedConnectionCleanupThread#1
       local variable: java.util.concurrent.ThreadPoolExecutor#2
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(<unknown string>)
       local variable: java.util.concurrent.ThreadPoolExecutor$Worker#1
    at java.lang.Thread.run(<unknown string>)

"HikariPool-1 housekeeper" daemon prio=5 tid=15 TIMED_WAITING
    at jdk.internal.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(<unknown string>)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(<unknown string>)
       local variable: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject#10
       local variable: java.util.concurrent.locks.AbstractQueuedSynchronizer$Node#5
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(<unknown string>)
       local variable: java.util.concurrent.locks.ReentrantLock#12
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(<unknown string>)
       local variable: java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue#1
    at java.util.concurrent.ThreadPoolExecutor.getTask(<unknown string>)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(<unknown string>)
       local variable: java.util.concurrent.ScheduledThreadPoolExecutor#1
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(<unknown string>)
       local variable: java.util.concurrent.ThreadPoolExecutor$Worker#2
    at java.lang.Thread.run(<unknown string>)

"kotlinx.coroutines.DefaultExecutor" daemon prio=5 tid=19 TIMED_WAITING
    at jdk.internal.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(<unknown string>)
    at kotlinx.coroutines.DefaultExecutor.run(DefaultExecutor.kt:83)
       local variable: kotlinx.coroutines.DefaultExecutor#1
    at java.lang.Thread.run(<unknown string>)

"ktor-cio-dispatcher-worker-2" daemon prio=5 tid=27 RUNNABLE
    at sun.nio.ch.EPoll.wait(Native Method)
    at sun.nio.ch.EPollSelectorImpl.doSelect(<unknown string>)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(<unknown string>)
       local variable: sun.nio.ch.EPollSelectorImpl#2
       local variable: sun.nio.ch.Util$2#2
    at sun.nio.ch.SelectorImpl.select(<unknown string>)
    at io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:97)
       local variable: io.ktor.network.selector.ActorSelectorManager#2
    at io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       local variable: io.ktor.network.selector.ActorSelectorManager$process$1#2
       local variable: io.ktor.network.selector.ActorSelectorManager$select$1#699
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
       local variable: kotlin.coroutines.CombinedContext#20
       local variable: kotlinx.coroutines.DispatchedContinuation#2947
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.shutdown(CoroutineScheduler.kt:361)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.close(CoroutineScheduler.kt:329)
    at kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher.close(Dispatcher.kt:73)
    at io.ktor.client.engine.HttpClientEngineBaseKt.close(HttpClientEngineBase.kt:44)
    at io.ktor.client.engine.HttpClientEngineBaseKt.access$close(HttpClientEngineBase.kt:1)
       local variable: kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher#2
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:28)
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:18)
       local variable: io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1#1
    at kotlinx.coroutines.InvokeOnCompletion.invoke(JobSupport.kt:1386)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.NodeList#5
       local variable: kotlinx.coroutines.InvokeOnCompletion#4
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
       local variable: java.util.ArrayList#1580
    at kotlinx.coroutines.JobSupport.continueCompleting(JobSupport.kt:932)
    at kotlinx.coroutines.JobSupport.access$continueCompleting(JobSupport.kt:28)
       local variable: kotlinx.coroutines.ChildHandleNode#6
       local variable: kotlinx.coroutines.SupervisorJobImpl#3
       local variable: kotlinx.coroutines.JobSupport$Finishing#1
    at kotlinx.coroutines.JobSupport$ChildCompletion.invoke(JobSupport.kt:1152)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.JobSupport$ChildCompletion#1
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
       local variable: java.util.ArrayList#1579
    at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903)
       local variable: kotlinx.coroutines.JobSupport$Finishing#2
    at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
    at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
       local variable: kotlinx.coroutines.NodeList#6
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
       local variable: kotlinx.coroutines.LazyStandaloneCoroutine#2
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113)
       local variable: kotlinx.coroutines.TimeoutCoroutine#1
       local variable: kotlin.Result$Failure#2
       local variable: kotlinx.coroutines.CompletedExceptionally#2
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:55)
       local variable: java.lang.Integer#2
       local variable: kotlin.Result$Companion#1
       local variable: kotlinx.coroutines.DispatchedContinuation#7
       local variable: io.ktor.client.engine.cio.Endpoint$postman$1$task$1#1
       local variable: kotlin.coroutines.CombinedContext#21
       local variable: kotlinx.coroutines.channels.ClosedReceiveChannelException#1
       local variable: kotlinx.coroutines.CompletedExceptionally#1
       local variable: kotlin.Result$Failure#1
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
       local variable: kotlinx.coroutines.scheduling.CoroutineScheduler#3
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
       local variable: kotlinx.coroutines.CancellableContinuationImpl#4
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

"ktor-cio-dispatcher-worker-3" daemon prio=5 tid=48 RUNNABLE
    at sun.nio.ch.EPoll.wait(Native Method)
    at sun.nio.ch.EPollSelectorImpl.doSelect(<unknown string>)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(<unknown string>)
       local variable: sun.nio.ch.EPollSelectorImpl#3
       local variable: sun.nio.ch.Util$2#3
    at sun.nio.ch.SelectorImpl.select(<unknown string>)
    at io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:97)
       local variable: io.ktor.network.selector.ActorSelectorManager#3
    at io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       local variable: io.ktor.network.selector.ActorSelectorManager$process$1#3
       local variable: io.ktor.network.selector.ActorSelectorManager$select$1#280
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
       local variable: kotlin.coroutines.CombinedContext#31
       local variable: kotlinx.coroutines.DispatchedContinuation#2528
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.shutdown(CoroutineScheduler.kt:361)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.close(CoroutineScheduler.kt:329)
       local variable: kotlinx.coroutines.scheduling.CoroutineScheduler#4
    at kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher.close(Dispatcher.kt:73)
    at io.ktor.client.engine.HttpClientEngineBaseKt.close(HttpClientEngineBase.kt:44)
    at io.ktor.client.engine.HttpClientEngineBaseKt.access$close(HttpClientEngineBase.kt:1)
       local variable: kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher#3
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:28)
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:18)
       local variable: io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1#2
    at kotlinx.coroutines.InvokeOnCompletion.invoke(JobSupport.kt:1386)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.NodeList#7
       local variable: kotlinx.coroutines.InvokeOnCompletion#6
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
    at kotlinx.coroutines.JobSupport.continueCompleting(JobSupport.kt:932)
    at kotlinx.coroutines.JobSupport.access$continueCompleting(JobSupport.kt:28)
       local variable: kotlinx.coroutines.SupervisorJobImpl#4
       local variable: kotlinx.coroutines.JobSupport$Finishing#3
       local variable: kotlinx.coroutines.ChildHandleNode#7
    at kotlinx.coroutines.JobSupport$ChildCompletion.invoke(JobSupport.kt:1152)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.JobSupport$ChildCompletion#2
       local variable: kotlinx.coroutines.NodeList#8
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
    at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903)
    at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
    at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
       local variable: kotlinx.coroutines.LazyStandaloneCoroutine#3
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
       local variable: kotlinx.coroutines.TimeoutCoroutine#2
       local variable: kotlinx.coroutines.CompletedExceptionally#3
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:55)
       local variable: kotlin.coroutines.CombinedContext#32
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
       local variable: kotlinx.coroutines.CancellableContinuationImpl#5
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

"ktor-cio-dispatcher-worker-4" daemon prio=5 tid=53 RUNNABLE
    at sun.nio.ch.EPoll.wait(Native Method)
    at sun.nio.ch.EPollSelectorImpl.doSelect(<unknown string>)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(<unknown string>)
       local variable: sun.nio.ch.EPollSelectorImpl#4
       local variable: sun.nio.ch.Util$2#4
    at sun.nio.ch.SelectorImpl.select(<unknown string>)
    at io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:97)
       local variable: io.ktor.network.selector.ActorSelectorManager#4
    at io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       local variable: io.ktor.network.selector.ActorSelectorManager$process$1#4
       local variable: io.ktor.network.selector.ActorSelectorManager$select$1#249
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
       local variable: kotlin.coroutines.CombinedContext#33
       local variable: kotlinx.coroutines.DispatchedContinuation#2497
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.shutdown(CoroutineScheduler.kt:361)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.close(CoroutineScheduler.kt:329)
       local variable: kotlinx.coroutines.scheduling.CoroutineScheduler#5
    at kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher.close(Dispatcher.kt:73)
    at io.ktor.client.engine.HttpClientEngineBaseKt.close(HttpClientEngineBase.kt:44)
    at io.ktor.client.engine.HttpClientEngineBaseKt.access$close(HttpClientEngineBase.kt:1)
       local variable: kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher#4
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:28)
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:18)
       local variable: io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1#3
    at kotlinx.coroutines.InvokeOnCompletion.invoke(JobSupport.kt:1386)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.NodeList#9
       local variable: kotlinx.coroutines.InvokeOnCompletion#7
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
    at kotlinx.coroutines.JobSupport.continueCompleting(JobSupport.kt:932)
    at kotlinx.coroutines.JobSupport.access$continueCompleting(JobSupport.kt:28)
       local variable: kotlinx.coroutines.SupervisorJobImpl#5
       local variable: kotlinx.coroutines.JobSupport$Finishing#4
       local variable: kotlinx.coroutines.ChildHandleNode#8
    at kotlinx.coroutines.JobSupport$ChildCompletion.invoke(JobSupport.kt:1152)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.JobSupport$ChildCompletion#3
       local variable: kotlinx.coroutines.NodeList#10
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
    at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903)
    at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
    at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
       local variable: kotlinx.coroutines.StandaloneCoroutine#5
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
       local variable: kotlin.coroutines.CombinedContext#34
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
       local variable: kotlinx.coroutines.CancellableContinuationImpl#6
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

"ktor-cio-dispatcher-worker-3" daemon prio=5 tid=56 RUNNABLE
    at sun.nio.ch.EPoll.wait(Native Method)
    at sun.nio.ch.EPollSelectorImpl.doSelect(<unknown string>)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(<unknown string>)
       local variable: sun.nio.ch.EPollSelectorImpl#5
       local variable: sun.nio.ch.Util$2#5
    at sun.nio.ch.SelectorImpl.select(<unknown string>)
    at io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:97)
       local variable: io.ktor.network.selector.ActorSelectorManager#5
    at io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       local variable: io.ktor.network.selector.ActorSelectorManager$process$1#5
       local variable: io.ktor.network.selector.ActorSelectorManager$select$1#218
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
       local variable: kotlin.coroutines.CombinedContext#35
       local variable: kotlinx.coroutines.DispatchedContinuation#2466
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.shutdown(CoroutineScheduler.kt:361)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.close(CoroutineScheduler.kt:329)
       local variable: kotlinx.coroutines.scheduling.CoroutineScheduler#6
    at kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher.close(Dispatcher.kt:73)
    at io.ktor.client.engine.HttpClientEngineBaseKt.close(HttpClientEngineBase.kt:44)
    at io.ktor.client.engine.HttpClientEngineBaseKt.access$close(HttpClientEngineBase.kt:1)
       local variable: kotlinx.coroutines.scheduling.ExperimentalCoroutineDispatcher#5
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:28)
    at io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1.invoke(HttpClientEngineBase.kt:18)
       local variable: io.ktor.client.engine.HttpClientEngineBase$close$$inlined$apply$lambda$1#4
    at kotlinx.coroutines.InvokeOnCompletion.invoke(JobSupport.kt:1386)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.NodeList#11
       local variable: kotlinx.coroutines.InvokeOnCompletion#8
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
    at kotlinx.coroutines.JobSupport.continueCompleting(JobSupport.kt:932)
    at kotlinx.coroutines.JobSupport.access$continueCompleting(JobSupport.kt:28)
       local variable: kotlinx.coroutines.SupervisorJobImpl#6
       local variable: kotlinx.coroutines.JobSupport$Finishing#5
       local variable: kotlinx.coroutines.ChildHandleNode#9
    at kotlinx.coroutines.JobSupport$ChildCompletion.invoke(JobSupport.kt:1152)
    at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
       local variable: kotlinx.coroutines.JobSupport$ChildCompletion#4
       local variable: kotlinx.coroutines.NodeList#12
    at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
    at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
    at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903)
    at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
    at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
       local variable: kotlinx.coroutines.LazyStandaloneCoroutine#4
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
       local variable: kotlinx.coroutines.TimeoutCoroutine#3
       local variable: kotlinx.coroutines.CompletedExceptionally#4
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:55)
       local variable: kotlin.coroutines.CombinedContext#36
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
       local variable: kotlinx.coroutines.CancellableContinuationImpl#7
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)