Привет, я использую веб-сервер ktor на кубернетах. При запуске экземпляра сервера он использует 250-300 МБ, но после нескольких часов работы использование памяти увеличивается до 600 МБ, и я установил ограничение на 600 МБ после перезапуска этого сервера из-за OOM. Для тестирования, когда память была 500+, я остановил весь трафик сервера c и сгенерировал дамп кучи, который прилагается ниже. Но проблема в том, что после нескольких часов ожидания память сохраняет 500+ МБ. Думаю надо go вернуть нормальные 200-300 Мб. Извините, я не умею проверять дамп кучи на наличие проблем. Не могли бы вы проверить это и сказать мне, где проблема, спасибо.
Сводка дампа кучи
ссылка на полный дамп https://www.dropbox.com/s/sdmbgs41b8dgj38/ktor-app-dump.txt?dl=0 и здесь несколько дампов потоков
"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)
Объекты дампа кучи
Объекты дампа кучи по пакетам
дайте мне знать, если вы хотите что-нибудь еще. Спасибо