jackson-databind icon indicating copy to clipboard operation
jackson-databind copied to clipboard

Use ReentrantLock instead of synchronized to avoid deadlock on pinning

Open oddbjornkvalsund opened this issue 3 months ago • 0 comments

DeserializerCache uses synchronized to protect the _incompleteDeserializers map from concurrent modification. This deadlocks when using virtual threads + IO within the synchronized block and you end up with a non-responsive VM and stacktraces looking like the one below. Note in particular the threads that have - waiting to lock <0x00000006104ab5e8> (a java.util.HashMap).

Replacing the synchronized keyword with a ReentrantLock fixes the problem. See relevant info here: https://www.infoworld.com/article/3713220/java-virtual-threads-hit-with-pinning-issue.html and here: https://inside.java/2024/02/21/quality-heads-up/.

Attaching to process ID 14488, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 21.0.1+12-29
Deadlock Detection:

No deadlocks found.

"main" #1 prio=5 tid=0x00007ef06c02b500 nid=14490 waiting on condition [0x00007ef073bfd000]
   java.lang.Thread.State: TIMED_WAITING (parking)
   JavaThread state: _thread_blocked
 - jdk.internal.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
	- parking to wait for <0x00000006104a51c0> (a java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=34, line=269 (Interpreted frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=124, line=1758 (Interpreted frame)
 - java.util.concurrent.ThreadPoolExecutor.awaitTermination(long, java.util.concurrent.TimeUnit) @bci=57, line=1475 (Interpreted frame)
 - java.util.concurrent.ExecutorService.close() @bci=28, line=417 (Interpreted frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.testDeadlock() @bci=108, line=60 (Interpreted frame)
 - java.lang.invoke.LambdaForm$DMH+0x00007eeff401cc00.invokeVirtual(java.lang.Object, java.lang.Object) @bci=10 (Interpreted frame)
 - java.lang.invoke.LambdaForm$MH+0x00007eeff401d800.invoke(java.lang.Object, java.lang.Object) @bci=31 (Interpreted frame)
 - java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, java.lang.Object, java.lang.Object) @bci=19 (Interpreted frame)
 - jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.lang.Object, java.lang.Object[]) @bci=41, line=153 (Interpreted frame)
 - jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.lang.Object, java.lang.Object[]) @bci=23, line=103 (Interpreted frame)
 - java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=102, line=580 (Interpreted frame)
 - junit.framework.TestCase.runTest() @bci=107, line=177 (Interpreted frame)
 - junit.framework.TestCase.runBare() @bci=7, line=142 (Interpreted frame)
 - junit.framework.TestResult$1.protect() @bci=4, line=122 (Interpreted frame)
 - junit.framework.TestResult.runProtected(junit.framework.Test, junit.framework.Protectable) @bci=1, line=142 (Interpreted frame)
 - junit.framework.TestResult.run(junit.framework.TestCase) @bci=18, line=125 (Interpreted frame)
 - junit.framework.TestCase.run(junit.framework.TestResult) @bci=2, line=130 (Interpreted frame)
 - junit.framework.TestSuite.runTest(junit.framework.Test, junit.framework.TestResult) @bci=2, line=241 (Interpreted frame)
 - junit.framework.TestSuite.run(junit.framework.TestResult) @bci=40, line=236 (Interpreted frame)
 - org.junit.internal.runners.JUnit38ClassRunner.run(org.junit.runner.notification.RunNotifier) @bci=22, line=90 (Interpreted frame)
 - org.junit.runner.JUnitCore.run(org.junit.runner.Runner) @bci=37, line=137 (Interpreted frame)
 - com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(java.lang.String[], java.lang.String, int, boolean) @bci=166, line=69 (Interpreted frame)
 - com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(boolean) @bci=17, line=38 (Interpreted frame)
 - com.intellij.rt.execution.junit.TestsRepeater.repeat(int, boolean, com.intellij.rt.execution.junit.TestsRepeater$TestRun) @bci=80, line=30 (Interpreted frame)
 - com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(com.intellij.rt.junit.IdeaTestRunner, java.lang.String[], java.util.ArrayList, java.lang.String, int, boolean) @bci=25, line=35 (Interpreted frame)
 - com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(java.lang.String[], java.lang.String, java.util.ArrayList, java.lang.String) @bci=117, line=232 (Interpreted frame)
 - com.intellij.rt.junit.JUnitStarter.main(java.lang.String[]) @bci=97, line=55 (Interpreted frame)


"Reference Handler" #9 daemon prio=10 tid=0x00007ef06c135b00 nid=14505 waiting on condition [0x00007ef0491fe000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
 - java.lang.ref.Reference.waitForReferencePendingList() @bci=0 (Interpreted frame)
 - java.lang.ref.Reference.processPendingReferences() @bci=0, line=246 (Interpreted frame)
 - java.lang.ref.Reference$ReferenceHandler.run() @bci=8, line=208 (Interpreted frame)


"Finalizer" #10 daemon prio=8 tid=0x00007ef06c137150 nid=14506 in Object.wait() [0x00007ef0490fe000]
   java.lang.Thread.State: WAITING (on object monitor)
   JavaThread state: _thread_blocked
 - java.lang.Object.wait0(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait(long) @bci=6, line=366 (Interpreted frame)
 - java.lang.Object.wait() @bci=2, line=339 (Interpreted frame)
 - java.lang.ref.NativeReferenceQueue.await() @bci=4, line=48 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove0() @bci=12, line=158 (Interpreted frame)
 - java.lang.ref.NativeReferenceQueue.remove() @bci=8, line=89 (Interpreted frame)
	- locked <0x00000006104a83d8> (a java.lang.ref.NativeReferenceQueue$Lock)
 - java.lang.ref.Finalizer$FinalizerThread.run() @bci=20, line=173 (Interpreted frame)


"Signal Dispatcher" #11 daemon prio=9 tid=0x00007ef06c138c30 nid=14507 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked


"Common-Cleaner" #18 daemon prio=8 tid=0x00007ef06c1603c0 nid=14514 waiting on condition [0x00007ef048a2e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
   JavaThread state: _thread_blocked
 - jdk.internal.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
	- parking to wait for <0x00000006104a20f0> (a java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=34, line=269 (Interpreted frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(long, java.util.concurrent.TimeUnit) @bci=134, line=1847 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.await(long) @bci=8, line=71 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove0(long) @bci=18, line=143 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove(long) @bci=36, line=218 (Interpreted frame)
 - jdk.internal.ref.CleanerImpl.run() @bci=45, line=140 (Interpreted frame)
 - java.lang.Thread.runWith(java.lang.Object, java.lang.Runnable) @bci=5, line=1596 (Interpreted frame)
 - java.lang.Thread.run() @bci=19, line=1583 (Interpreted frame)
 - jdk.internal.misc.InnocuousThread.run() @bci=20, line=186 (Interpreted frame)


"Monitor Ctrl-Break" #19 daemon prio=5 tid=0x00007ef06c1d92d0 nid=14516 runnable [0x00007ef04892e000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_in_native
 - sun.nio.ch.SocketDispatcher.read0(java.io.FileDescriptor, long, int) @bci=0 (Interpreted frame)
 - sun.nio.ch.SocketDispatcher.read(java.io.FileDescriptor, long, int) @bci=4, line=47 (Interpreted frame)
 - sun.nio.ch.NioSocketImpl.tryRead(java.io.FileDescriptor, byte[], int, int) @bci=45, line=256 (Interpreted frame)
 - sun.nio.ch.NioSocketImpl.implRead(byte[], int, int) @bci=109, line=307 (Interpreted frame)
 - sun.nio.ch.NioSocketImpl.read(byte[], int, int) @bci=54, line=346 (Interpreted frame)
 - sun.nio.ch.NioSocketImpl$1.read(byte[], int, int) @bci=7, line=796 (Interpreted frame)
 - java.net.Socket$SocketInputStream.read(byte[], int, int) @bci=7, line=1099 (Interpreted frame)
 - sun.nio.cs.StreamDecoder.readBytes() @bci=117, line=329 (Interpreted frame)
 - sun.nio.cs.StreamDecoder.implRead(char[], int, int) @bci=112, line=372 (Interpreted frame)
 - sun.nio.cs.StreamDecoder.lockedRead(char[], int, int) @bci=158, line=215 (Interpreted frame)
 - sun.nio.cs.StreamDecoder.read(char[], int, int) @bci=30, line=169 (Interpreted frame)
 - java.io.InputStreamReader.read(char[], int, int) @bci=7, line=188 (Interpreted frame)
 - java.io.BufferedReader.fill() @bci=145, line=160 (Interpreted frame)
 - java.io.BufferedReader.implReadLine(boolean, boolean[]) @bci=44, line=370 (Interpreted frame)
 - java.io.BufferedReader.readLine(boolean, boolean[]) @bci=26, line=347 (Interpreted frame)
 - java.io.BufferedReader.readLine() @bci=3, line=436 (Interpreted frame)
 - com.intellij.rt.execution.application.AppMainV2$1.run() @bci=36, line=53 (Interpreted frame)


"ForkJoinPool-1-worker-1" #22 daemon prio=5 tid=0x00007ef06c533ec0 nid=14520 waiting for monitor entry [0x00007ef04862e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-2" #31 daemon prio=5 tid=0x00007eefb0001040 nid=14521 waiting for monitor entry [0x00007ef04852e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-3" #47 daemon prio=5 tid=0x00007eefb4001040 nid=14522 waiting for monitor entry [0x00007ef04842e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-4" #65 daemon prio=5 tid=0x00007eefa8001040 nid=14523 waiting for monitor entry [0x00007ef04832e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-5" #70 daemon prio=5 tid=0x00007eefb0003380 nid=14524 waiting for monitor entry [0x00007ef04822e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-6" #74 daemon prio=5 tid=0x00007eefac001040 nid=14525 waiting for monitor entry [0x00007ef04812e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-7" #77 daemon prio=5 tid=0x00007eefb0004840 nid=14526 waiting for monitor entry [0x00007eeff2ffe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-8" #82 daemon prio=5 tid=0x00007eefa0001040 nid=14527 waiting for monitor entry [0x00007eeff2efe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-9" #92 daemon prio=5 tid=0x00007eefa4001040 nid=14528 waiting for monitor entry [0x00007eeff2dfe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-10" #97 daemon prio=5 tid=0x00007eefb0005aa0 nid=14529 waiting on condition [0x00007eeff2cfe000]
   java.lang.Thread.State: WAITING (parking)
   JavaThread state: _thread_blocked
 - jdk.internal.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.lang.VirtualThread.parkOnCarrierThread(boolean, long) @bci=66, line=663 (Interpreted frame)
 - java.lang.VirtualThread.park() @bci=200, line=593 (Compiled frame)
 - java.lang.System$2.parkVirtualThread() @bci=17, line=2639 (Compiled frame)
 - jdk.internal.misc.VirtualThreads.park() @bci=3, line=54 (Compiled frame)
 - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=16, line=219 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node, int, boolean, boolean, boolean, long) @bci=361, line=754 (Compiled frame)
 - java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int) @bci=15, line=990 (Compiled frame)
 - java.util.concurrent.locks.ReentrantLock$Sync.lock() @bci=9, line=153 (Compiled frame [deoptimized])
 - java.util.concurrent.locks.ReentrantLock.lock() @bci=4, line=322 (Compiled frame [deoptimized])
 - jdk.internal.misc.InternalLock.lock() @bci=4, line=74 (Compiled frame [deoptimized])
 - java.io.PrintStream.writeln(java.lang.String) @bci=11, line=824 (Compiled frame [deoptimized])
 - java.io.PrintStream.println(java.lang.String) @bci=14, line=1168 (Compiled frame [deoptimized])
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=13, line=259 (Interpreted frame)
	- locked <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-11" #101 daemon prio=5 tid=0x00007eef98001040 nid=14530 waiting for monitor entry [0x00007eeff2bfe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"ForkJoinPool-1-worker-12" #102 daemon prio=5 tid=0x00007ef06c535080 nid=14531 waiting for monitor entry [0x00007eeff2afe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   JavaThread state: _thread_blocked
 - com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=8, line=259 (Interpreted frame)
	- waiting to lock <0x00000006104ab5e8> (a java.util.HashMap)
 - com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.deser.DeserializerFactory, com.fasterxml.jackson.databind.JavaType) @bci=16, line=170 (Interpreted frame)
 - com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(com.fasterxml.jackson.databind.JavaType) @bci=10, line=669 (Interpreted frame)
 - com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType) @bci=20, line=5036 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.JavaType) @bci=80, line=4906 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, com.fasterxml.jackson.databind.JavaType) @bci=18, line=3848 (Compiled frame)
 - com.fasterxml.jackson.databind.ObjectMapper.readValue(java.lang.String, java.lang.Class) @bci=18, line=3816 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest.lambda$testDeadlock$0(java.util.concurrent.atomic.AtomicLong, com.fasterxml.jackson.databind.json.JsonMapper, java.lang.Class, java.util.concurrent.CountDownLatch) @bci=11, line=51 (Compiled frame)
 - com.fasterxml.jackson.databind.jdk21.DeserializerCacheTest$$Lambda+0x00007eeff40ae0d0.run() @bci=16 (Compiled frame)
 - java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=572 (Compiled frame)
 - java.util.concurrent.FutureTask.run() @bci=39, line=317 (Compiled frame)
 - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=92, line=1144 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
	at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:383)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:292)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
	at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:148)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:81)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
	at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:302)
	at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)


"Attach Listener" #142 daemon prio=9 tid=0x00007eefdc000ff0 nid=14553 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked


oddbjornkvalsund avatar Mar 13 '24 21:03 oddbjornkvalsund