Below is the complete stack trace of AsyncGetter thread during issue time, "AsyncGetter-1027-thread-1" #3088929 daemon prio=5 os_prio=0 tid=0x4400c4400000 nid=0x30ee [ JVM locked by VM waiting on VM lock 'self_suspend_monitor for TID 12526', polling bits: safep ] java.lang.Thread.State: TIMED_WAITING (parking) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328) at java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:409) at com.mongodb.internal.connection.ConcurrentPool.acquirePermit(ConcurrentPool.java:197) at com.mongodb.internal.connection.ConcurrentPool.get(ConcurrentPool.java:140) at com.mongodb.internal.connection.DefaultConnectionPool.getPooledConnection(DefaultConnectionPool.java:271) at com.mongodb.internal.connection.DefaultConnectionPool.access$13(DefaultConnectionPool.java:270) at com.mongodb.internal.connection.DefaultConnectionPool$1.run(DefaultConnectionPool.java:176) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Post application restart: "AsyncGetter-275-thread-1" #928509 daemon prio=5 os_prio=0 tid=0x4400ba000000 nid=0x5ae [ JVM locked by VM (w/poll advisory bit) waiting on VM lock 'self_suspend_monitor for TID 1454', polling bits: safep rstak gpgc_clean_new gpgc_clean_old ] java.lang.Thread.State: WAITING (parking) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)