com-lihaoyi / upickle

uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala
https://com-lihaoyi.github.io/upickle
MIT License
722 stars 165 forks source link

Possible dead lock #638

Open mio-19 opened 1 month ago

mio-19 commented 1 month ago

I am on 4.0.2 and scala 3.5.2-RC2. I have a tree defined with multiple sealed trait and case class. All sealed traits have derives ReadWriter Today I introduced 3 more sealed traits to describe a property that some case classes, and I faced dead lock. I reverted them in a commit and the dead lock issue disappeared. https://github.com/chester-lang/chester/commit/ac7eef2a513ed3013ed6a0098118d44c76f0af26 I am unable to write minimal example that can generate such dead lock

    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1048)
    at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
    at chester.syntax.core.Term$.derived$ReadWriter$lzyINIT5(Term.scala:119)
    at chester.syntax.core.Term$.derived$ReadWriter(Term.scala:119)
    at chester.syntax.core.Term$.x0$lzyINIT3$1(Term.scala:119)
    at chester.syntax.core.Term$.x0$3(Term.scala:119)
    at chester.syntax.core.Term$.derived$ReadWriter$lzyINIT5(Term.scala:119)
    at chester.syntax.core.Term$.derived$ReadWriter(Term.scala:119)
lihaoyi commented 1 month ago

@mio-19 can you provide the full output of jstack on the deadlocked process? That would help us see who exactly is deadlocking with who over what pair of locks

mio-19 commented 1 month ago

I found a minimal change that introduce dead lock. https://github.com/chester-lang/chester/commit/79bcce84302499ed1cf348ac14c7254eccc0081b jstack output of command sbt common/test

2024-10-20 15:28:09
Full thread dump OpenJDK 64-Bit Server VM (23+37 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x0000fffe816485f0, length=38, elements={
0x0000ffff88018710, 0x0000ffff88112e30, 0x0000ffff88114440, 0x0000ffff88115da0,
0x0000ffff88117410, 0x0000ffff881189e0, 0x0000ffff8811a4c0, 0x0000ffff8811bc00,
0x0000ffff88128160, 0x0000ffff8812aaf0, 0x0000ffff88688f20, 0x0000ffff88689fb0,
0x0000ffff8868b2f0, 0x0000ffff8868c610, 0x0000ffff8868db60, 0x0000ffff888eb720,
0x0000ffff88913400, 0x0000ffff88ad1b60, 0x0000ffff88b44120, 0x0000ffff88b8ecc0,
0x0000fffe9000f9f0, 0x0000ffff889b8ea0, 0x0000ffff889a5060, 0x0000ffff889a7120,
0x0000ffff889a8190, 0x0000ffff88cb2b90, 0x0000ffff88cb3860, 0x0000ffff88c96380,
0x0000ffff88c97ab0, 0x0000ffff88c92ef0, 0x0000ffff88c93b40, 0x0000ffff881d3e60,
0x0000ffff881d4f70, 0x0000ffff88239c30, 0x0000fffe98004060, 0x0000fffe74028f30,
0x0000fffe8089b760, 0x0000ffff3c000ed0
}

"main" #1 [10721] prio=5 os_prio=0 cpu=4754.19ms elapsed=126.68s tid=0x0000ffff88018710 nid=10721 waiting on condition  [0x0000ffff8dbfb000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006db281080> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ExecutorCompletionService.take(java.base@23/ExecutorCompletionService.java:202)
    at sbt.ConcurrentRestrictions$$anon$4.take(ConcurrentRestrictions.scala:311)
    at sbt.Execute.next$1(Execute.scala:118)
    at sbt.Execute.processAll(Execute.scala:128)
    at sbt.Execute.runKeep(Execute.scala:96)
    at sbt.EvaluateTask$.liftedTree1$1(EvaluateTask.scala:520)
    at sbt.EvaluateTask$.run$1(EvaluateTask.scala:519)
    at sbt.EvaluateTask$.runTask(EvaluateTask.scala:542)
    at sbt.internal.Aggregation$.$anonfun$timedRun$4(Aggregation.scala:104)
    at sbt.internal.Aggregation$$$Lambda/0x00003fc001d318a0.apply(Unknown Source)
    at sbt.EvaluateTask$.withStreams(EvaluateTask.scala:432)
    at sbt.internal.Aggregation$.timedRun(Aggregation.scala:102)
    at sbt.internal.Aggregation$.runTasks(Aggregation.scala:116)
    at sbt.internal.Aggregation$.$anonfun$applyTasks$1(Aggregation.scala:71)
    at sbt.internal.Aggregation$$$Lambda/0x00003fc001d2e420.apply(Unknown Source)
    at sbt.Command$.$anonfun$applyEffect$2(Command.scala:146)
    at sbt.Command$$$Lambda/0x00003fc001553110.apply(Unknown Source)
    at sbt.internal.Aggregation$.$anonfun$evaluatingParser$11(Aggregation.scala:231)
    at sbt.internal.Aggregation$$$Lambda/0x00003fc001d2ebe0.apply(Unknown Source)
    at sbt.internal.Act$.$anonfun$actParser0$8(Act.scala:500)
    at sbt.internal.Act$$$Lambda/0x00003fc001d2f290.apply(Unknown Source)
    at sbt.Command$.process(Command.scala:194)
    at sbt.MainLoop$.$anonfun$processCommand$7(MainLoop.scala:267)
    at sbt.MainLoop$$$Lambda/0x00003fc00153fd18.apply(Unknown Source)
    at scala.Option.getOrElse(Option.scala:189)
    at sbt.MainLoop$.process$1(MainLoop.scala:267)
    at sbt.MainLoop$.processCommand(MainLoop.scala:312)
    at sbt.MainLoop$.$anonfun$next$5(MainLoop.scala:171)
    at sbt.MainLoop$$$Lambda/0x00003fc00150c2d0.apply(Unknown Source)
    at sbt.State$StateOpsImpl$.runCmd$1(State.scala:290)
    at sbt.State$StateOpsImpl$.process$extension(State.scala:326)
    at sbt.MainLoop$.$anonfun$next$4(MainLoop.scala:171)
    at sbt.MainLoop$$$Lambda/0x00003fc00150c000.apply(Unknown Source)
    at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
    at sbt.MainLoop$.next(MainLoop.scala:171)
    at sbt.MainLoop$.run(MainLoop.scala:152)
    at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:127)
    at sbt.MainLoop$$$Lambda/0x00003fc0015009c8.apply(Unknown Source)
    at sbt.io.Using.apply(Using.scala:28)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:120)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:74)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:59)
    at sbt.MainLoop$.runLogged(MainLoop.scala:50)
    at sbt.StandardMain$.runManaged(Main.scala:225)
    at sbt.xMain$.$anonfun$run$11(Main.scala:135)
    at sbt.xMain$$$Lambda/0x00003fc0011c9038.apply(Unknown Source)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
    at scala.Console$.withIn(Console.scala:230)
    at sbt.internal.util.Terminal$.withIn(Terminal.scala:610)
    at sbt.internal.util.Terminal$.$anonfun$withStreams$1(Terminal.scala:390)
    at sbt.internal.util.Terminal$$$Lambda/0x00003fc00141a678.apply(Unknown Source)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
    at scala.Console$.withOut(Console.scala:167)
    at sbt.internal.util.Terminal$.$anonfun$withOut$2(Terminal.scala:600)
    at sbt.internal.util.Terminal$$$Lambda/0x00003fc00141b748.apply(Unknown Source)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
    at scala.Console$.withErr(Console.scala:196)
    at sbt.internal.util.Terminal$.withOut(Terminal.scala:600)
    at sbt.internal.util.Terminal$.withStreams(Terminal.scala:390)
    at sbt.xMain$.withStreams$1(Main.scala:88)
    at sbt.xMain$.run(Main.scala:123)
    at java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.base@23/DirectMethodHandle$Holder)
    at java.lang.invoke.LambdaForm$MH/0x00003fc0010f2800.invoke(java.base@23/LambdaForm$MH)
    at java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@23/Invokers$Holder)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@23/DirectMethodHandleAccessor.java:154)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@23/DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke(java.base@23/Method.java:580)
    at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:59)
    at sbt.xMain.run(Main.scala:47)
    at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
    at xsbt.boot.Launch$$$Lambda/0x00003fc0010d4410.apply(Unknown Source)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
    at xsbt.boot.Launch$.run(Launch.scala:149)
    at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
    at xsbt.boot.Launch$$$Lambda/0x00003fc001096130.apply(Unknown Source)
    at xsbt.boot.Launch$.launch(Launch.scala:159)
    at xsbt.boot.Launch$.apply(Launch.scala:44)
    at xsbt.boot.Launch$.apply(Launch.scala:21)
    at xsbt.boot.Boot$.runImpl(Boot.scala:78)
    at xsbt.boot.Boot$.run(Boot.scala:73)
    at xsbt.boot.Boot$.main(Boot.scala:21)
    at xsbt.boot.Boot.main(Boot.scala)

"Reference Handler" #9 [10729] daemon prio=10 os_prio=0 cpu=440.92ms elapsed=126.67s tid=0x0000ffff88112e30 nid=10729 waiting on condition  [0x0000ffff5affe000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.ref.Reference.waitForReferencePendingList(java.base@23/Native Method)
    at java.lang.ref.Reference.processPendingReferences(java.base@23/Reference.java:246)
    at java.lang.ref.Reference$ReferenceHandler.run(java.base@23/Reference.java:208)

"Finalizer" #10 [10730] daemon prio=8 os_prio=0 cpu=2.28ms elapsed=126.67s tid=0x0000ffff88114440 nid=10730 in Object.wait()  [0x0000ffff5ae00000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait0(java.base@23/Native Method)
    - waiting on <no object reference available>
    at java.lang.Object.wait(java.base@23/Object.java:378)
    at java.lang.Object.wait(java.base@23/Object.java:352)
    at java.lang.ref.NativeReferenceQueue.await(java.base@23/NativeReferenceQueue.java:48)
    at java.lang.ref.ReferenceQueue.remove0(java.base@23/ReferenceQueue.java:166)
    at java.lang.ref.NativeReferenceQueue.remove(java.base@23/NativeReferenceQueue.java:89)
    - locked <0x00000006c0000078> (a java.lang.ref.NativeReferenceQueue$Lock)
    at java.lang.ref.Finalizer$FinalizerThread.run(java.base@23/Finalizer.java:173)

"Signal Dispatcher" #11 [10731] daemon prio=9 os_prio=0 cpu=0.17ms elapsed=126.67s tid=0x0000ffff88115da0 nid=10731 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #12 [10732] daemon prio=9 os_prio=0 cpu=187.50ms elapsed=126.67s tid=0x0000ffff88117410 nid=10732 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Monitor Deflation Thread" #13 [10733] daemon prio=9 os_prio=0 cpu=21.31ms elapsed=126.67s tid=0x0000ffff881189e0 nid=10733 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #14 [10734] daemon prio=9 os_prio=0 cpu=28669.06ms elapsed=126.67s tid=0x0000ffff8811a4c0 nid=10734 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #17 [10735] daemon prio=9 os_prio=0 cpu=17376.39ms elapsed=126.67s tid=0x0000ffff8811bc00 nid=10735 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Notification Thread" #18 [10736] daemon prio=9 os_prio=0 cpu=60.25ms elapsed=126.67s tid=0x0000ffff88128160 nid=10736 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #19 [10737] daemon prio=8 os_prio=0 cpu=9.25ms elapsed=126.67s tid=0x0000ffff8812aaf0 nid=10737 waiting on condition  [0x0000ffff5a00d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c00010b8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23/LockSupport.java:269)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1852)
    at java.lang.ref.ReferenceQueue.await(java.base@23/ReferenceQueue.java:79)
    at java.lang.ref.ReferenceQueue.remove0(java.base@23/ReferenceQueue.java:151)
    at java.lang.ref.ReferenceQueue.remove(java.base@23/ReferenceQueue.java:229)
    at jdk.internal.ref.CleanerImpl.run(java.base@23/CleanerImpl.java:140)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)
    at jdk.internal.misc.InnocuousThread.run(java.base@23/InnocuousThread.java:186)

"pool-1-thread-1" #23 [10742] prio=5 os_prio=0 cpu=1.03ms elapsed=126.46s tid=0x0000ffff88688f20 nid=10742 waiting on condition  [0x0000ffff591fd000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0637310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"pool-1-thread-2" #24 [10743] prio=5 os_prio=0 cpu=100.24ms elapsed=126.46s tid=0x0000ffff88689fb0 nid=10743 waiting on condition  [0x0000ffff58fff000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0637310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"pool-1-thread-3" #25 [10744] prio=5 os_prio=0 cpu=258.55ms elapsed=126.46s tid=0x0000ffff8868b2f0 nid=10744 waiting on condition  [0x0000ffff58e01000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0637310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"pool-1-thread-4" #26 [10745] prio=5 os_prio=0 cpu=100.46ms elapsed=126.46s tid=0x0000ffff8868c610 nid=10745 waiting on condition  [0x0000ffff58c03000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0637310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"pool-1-thread-5" #27 [10746] prio=5 os_prio=0 cpu=1.42ms elapsed=126.45s tid=0x0000ffff8868db60 nid=10746 waiting on condition  [0x0000ffff58a05000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0637310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"JNA Cleaner" #35 [10754] daemon prio=5 os_prio=0 cpu=0.20ms elapsed=126.31s tid=0x0000ffff888eb720 nid=10754 waiting on condition  [0x0000ffff58609000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c064faf8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.lang.ref.ReferenceQueue.await(java.base@23/ReferenceQueue.java:75)
    at java.lang.ref.ReferenceQueue.remove0(java.base@23/ReferenceQueue.java:166)
    at java.lang.ref.ReferenceQueue.remove(java.base@23/ReferenceQueue.java:246)
    at com.sun.jna.internal.Cleaner$1.run(Cleaner.java:58)

"boot-server-socket-thread-1" #37 [10771] prio=5 os_prio=0 cpu=4.02ms elapsed=126.27s tid=0x0000ffff88913400 nid=10771 runnable  [0x0000ffff581fd000]
   java.lang.Thread.State: RUNNABLE
    at org.scalasbt.ipcsocket.UnixDomainSocketLibrary.accept(Native Method)
    at org.scalasbt.ipcsocket.JNAUnixDomainSocketLibraryProvider.accept(UnixDomainSocketLibrary.java:202)
    at org.scalasbt.ipcsocket.UnixDomainServerSocket.accept(UnixDomainServerSocket.java:157)
    at sbt.internal.BootServerSocket.lambda$new$1(BootServerSocket.java:275)
    at sbt.internal.BootServerSocket$$Lambda/0x00003fc0011d0200.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"sbt-console-input-reader" #39 [10797] prio=5 os_prio=0 cpu=0.34ms elapsed=126.12s tid=0x0000ffff88ad1b60 nid=10797 waiting on condition  [0x0000fffef6dff000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0a944b8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at sbt.internal.util.Terminal$WriteableInputStream.impl$1(Terminal.scala:547)
    at sbt.internal.util.Terminal$WriteableInputStream.$anonfun$runnable$1(Terminal.scala:553)
    at sbt.internal.util.Terminal$WriteableInputStream$$Lambda/0x00003fc0014122c0.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"classloader-cache-cleanup-0" #40 [10798] daemon prio=5 os_prio=0 cpu=75.59ms elapsed=126.02s tid=0x0000ffff88b44120 nid=10798 waiting on condition  [0x0000fffef6c02000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c0a919d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23/LockSupport.java:269)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1852)
    at java.lang.ref.ReferenceQueue.await(java.base@23/ReferenceQueue.java:79)
    at java.lang.ref.ReferenceQueue.remove0(java.base@23/ReferenceQueue.java:151)
    at java.lang.ref.ReferenceQueue.remove(java.base@23/ReferenceQueue.java:229)
    at sbt.internal.classpath.ClassLoaderCache$CleanupThread.run(ClassLoaderCache.scala:107)

"sbt-command-exchange-fastTrack" #42 [10799] daemon prio=5 os_prio=0 cpu=0.19ms elapsed=125.98s tid=0x0000ffff88b8ecc0 nid=10799 waiting on condition  [0x0000fffef6a03000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000007ff5f7fd0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at sbt.internal.CommandExchange$FastTrackThread.impl$2(CommandExchange.scala:472)
    at sbt.internal.CommandExchange$FastTrackThread.run(CommandExchange.scala:502)

"process reaper" #86 [10850] daemon prio=10 os_prio=0 cpu=28.61ms elapsed=121.09s tid=0x0000fffe9000f9f0 nid=10850 waiting on condition  [0x0000ffff68073000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006c064ca70> (a java.util.concurrent.SynchronousQueue$Transferer)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23/LockSupport.java:410)
    at java.util.concurrent.LinkedTransferQueue$DualNode.await(java.base@23/LinkedTransferQueue.java:452)
    at java.util.concurrent.SynchronousQueue$Transferer.xferLifo(java.base@23/SynchronousQueue.java:194)
    at java.util.concurrent.SynchronousQueue.xfer(java.base@23/SynchronousQueue.java:235)
    at java.util.concurrent.SynchronousQueue.poll(java.base@23/SynchronousQueue.java:338)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)
    at jdk.internal.misc.InnocuousThread.run(java.base@23/InnocuousThread.java:186)

"FileSystemWatchService" #87 [10854] daemon prio=5 os_prio=0 cpu=0.07ms elapsed=118.72s tid=0x0000ffff889b8ea0 nid=10854 runnable  [0x0000ffff59e10000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.fs.LinuxWatchService.poll(java.base@23/Native Method)
    at sun.nio.fs.LinuxWatchService$Poller.run(java.base@23/LinuxWatchService.java:307)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"NioPathWatcher-loop-thread-1" #89 [10855] daemon prio=5 os_prio=0 cpu=0.09ms elapsed=118.72s tid=0x0000ffff889a5060 nid=10855 waiting on condition  [0x0000fffef4429000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d79331d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@23/LinkedBlockingDeque.java:486)
    at java.util.concurrent.LinkedBlockingDeque.take(java.base@23/LinkedBlockingDeque.java:680)
    at sun.nio.fs.AbstractWatchService.take(java.base@23/AbstractWatchService.java:118)
    at com.swoval.files.RegisterableWatchServices$RegisterableWatchServiceImpl.take(RegisterableWatchServices.java:61)
    at com.swoval.files.NioPathWatcherService$2.run(NioPathWatcherService.java:71)

"com.swoval.files.SymlinkWatcher.callback-executor-1" #90 [10856] prio=5 os_prio=0 cpu=0.28ms elapsed=118.72s tid=0x0000ffff889a7120 nid=10856 waiting on condition  [0x0000fffef4627000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7932ac8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at com.swoval.files.Executor$ExecutorImpl$1.run(Executor.java:57)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"FileTreeRepository-callback-executor-1" #91 [10857] prio=5 os_prio=0 cpu=0.06ms elapsed=118.72s tid=0x0000ffff889a8190 nid=10857 waiting on condition  [0x0000fffef4a23000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7932238> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at com.swoval.files.Executor$ExecutorImpl$1.run(Executor.java:57)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"FileSystemWatchService" #92 [10858] daemon prio=5 os_prio=0 cpu=4.47ms elapsed=118.71s tid=0x0000ffff88cb2b90 nid=10858 runnable  [0x0000fffef5a14000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.fs.LinuxWatchService.poll(java.base@23/Native Method)
    at sun.nio.fs.LinuxWatchService$Poller.run(java.base@23/LinuxWatchService.java:307)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"NioPathWatcher-loop-thread-2" #93 [10859] daemon prio=5 os_prio=0 cpu=0.05ms elapsed=118.71s tid=0x0000ffff88cb3860 nid=10859 waiting on condition  [0x0000fffef6ffd000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d795a028> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@23/LinkedBlockingDeque.java:486)
    at java.util.concurrent.LinkedBlockingDeque.take(java.base@23/LinkedBlockingDeque.java:680)
    at sun.nio.fs.AbstractWatchService.take(java.base@23/AbstractWatchService.java:118)
    at com.swoval.files.RegisterableWatchServices$RegisterableWatchServiceImpl.take(RegisterableWatchServices.java:61)
    at com.swoval.files.NioPathWatcherService$2.run(NioPathWatcherService.java:71)

"FileSystemWatchService" #94 [10861] daemon prio=5 os_prio=0 cpu=0.16ms elapsed=118.28s tid=0x0000ffff88c96380 nid=10861 runnable  [0x0000fffef4e20000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.fs.LinuxWatchService.poll(java.base@23/Native Method)
    at sun.nio.fs.LinuxWatchService$Poller.run(java.base@23/LinuxWatchService.java:307)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"NioPathWatcher-loop-thread-3" #95 [10862] daemon prio=5 os_prio=0 cpu=0.09ms elapsed=118.28s tid=0x0000ffff88c97ab0 nid=10862 waiting on condition  [0x0000fffef5419000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7c8e558> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@23/LinkedBlockingDeque.java:486)
    at java.util.concurrent.LinkedBlockingDeque.take(java.base@23/LinkedBlockingDeque.java:680)
    at sun.nio.fs.AbstractWatchService.take(java.base@23/AbstractWatchService.java:118)
    at com.swoval.files.RegisterableWatchServices$RegisterableWatchServiceImpl.take(RegisterableWatchServices.java:61)
    at com.swoval.files.NioPathWatcherService$2.run(NioPathWatcherService.java:71)

"com.swoval.files.SymlinkWatcher.callback-executor-1" #96 [10863] prio=5 os_prio=0 cpu=0.13ms elapsed=118.28s tid=0x0000ffff88c92ef0 nid=10863 waiting on condition  [0x0000fffef5815000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7c8e670> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at com.swoval.files.Executor$ExecutorImpl$1.run(Executor.java:57)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"FileTreeRepository-callback-executor-1" #97 [10864] prio=5 os_prio=0 cpu=3.44ms elapsed=118.28s tid=0x0000ffff88c93b40 nid=10864 waiting on condition  [0x0000fffef422b000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7c8e858> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at com.swoval.files.Executor$ExecutorImpl$1.run(Executor.java:57)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"FileSystemWatchService" #98 [10865] daemon prio=5 os_prio=0 cpu=4.44ms elapsed=118.28s tid=0x0000ffff881d3e60 nid=10865 runnable  [0x0000fffe7a9fe000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.fs.LinuxWatchService.poll(java.base@23/Native Method)
    at sun.nio.fs.LinuxWatchService$Poller.run(java.base@23/LinuxWatchService.java:307)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"NioPathWatcher-loop-thread-4" #99 [10866] daemon prio=5 os_prio=0 cpu=2.88ms elapsed=118.28s tid=0x0000ffff881d4f70 nid=10866 waiting on condition  [0x0000fffe7a3fd000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7c5f1b8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@23/LinkedBlockingDeque.java:486)
    at java.util.concurrent.LinkedBlockingDeque.take(java.base@23/LinkedBlockingDeque.java:680)
    at sun.nio.fs.AbstractWatchService.take(java.base@23/AbstractWatchService.java:118)
    at com.swoval.files.RegisterableWatchServices$RegisterableWatchServiceImpl.take(RegisterableWatchServices.java:61)
    at com.swoval.files.NioPathWatcherService$2.run(NioPathWatcherService.java:71)

"sbt-task-progress-report-thread" #100 [10867] prio=5 os_prio=0 cpu=445.67ms elapsed=118.17s tid=0x0000ffff88239c30 nid=10867 waiting on condition  [0x0000fffef5617000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006db2823a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@23/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"sbt-progress-report-scheduler" #102 [10869] prio=5 os_prio=0 cpu=71.32ms elapsed=118.17s tid=0x0000fffe98004060 nid=10869 waiting on condition  [0x0000fffe7a1ff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000006d7c8eac8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23/LockSupport.java:269)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@23/AbstractQueuedSynchronizer.java:1763)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23/ScheduledThreadPoolExecutor.java:1182)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23/ScheduledThreadPoolExecutor.java:899)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"pool-6-thread-9" #110 [10877] prio=5 os_prio=0 cpu=4211.62ms elapsed=118.14s tid=0x0000fffe74028f30 nid=10877 waiting on condition  [0x0000fffe7920c000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x0000000722305fd0> (a java.util.concurrent.CountDownLatch$Sync)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:221)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@23/AbstractQueuedSynchronizer.java:754)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(java.base@23/AbstractQueuedSynchronizer.java:1099)
    at java.util.concurrent.CountDownLatch.await(java.base@23/CountDownLatch.java:230)
    at chester.syntax.core.Term$.derived$ReadWriter$lzyINIT5(Term.scala:124)
    at chester.syntax.core.Term$.derived$ReadWriter(Term.scala:124)
    at chester.syntax.core.Term$.x22$lzyINIT1$1(Term.scala:124)
    - locked <0x0000000722244b18> (a scala.runtime.LazyRef)
    at chester.syntax.core.Term$.chester$syntax$core$Term$$$_$x22$1(Term.scala:124)
    at chester.syntax.core.Term$.derived$ReadWriter$lzyINIT5(Term.scala:124)
    at chester.syntax.core.Term$.derived$ReadWriter(Term.scala:124)
    at chester.syntax.core.Judge$$anon$2.write0(Judge.scala:5)
    at chester.syntax.core.Judge$$anon$2.write0(Judge.scala:5)
    at upickle.core.Types$Writer.write(Types.scala:143)
    at upickle.core.Types$Writer.write$(Types.scala:131)
    at chester.syntax.core.Judge$$anon$2.write(Judge.scala:13)
    at upickle.core.Types$$anon$3.write0(Types.scala:63)
    at upickle.core.Types$Writer.write(Types.scala:143)
    at upickle.core.Types$Writer.write$(Types.scala:131)
    at upickle.core.Types$$anon$3.write(Types.scala:61)
    at upickle.core.Types$Writer.transform(Types.scala:139)
    at upickle.core.Types$Writer.transform$(Types.scala:131)
    at upickle.core.Types$$anon$3.transform(Types.scala:61)
    at upickle.core.BufferedValue$.maybeSortKeysTransform(BufferedValue.scala:76)
    at upickle.Api.upickle$Api$$maybeSortKeysTransform(Api.scala:29)
    at upickle.Api.write(Api.scala:54)
    at upickle.Api.write$(Api.scala:16)
    at upickle.default$.write(Api.scala:179)
    at chester.tyck.FilesTyckTest.$init$$$anonfun$1$$anonfun$1(FilesTyckTest.scala:30)
    at chester.tyck.FilesTyckTest$$Lambda/0x00003fc0027cb358.apply(Unknown Source)
    at munit.internal.console.StackTraces$.dropOutside(StackTraces.scala:12)
    at munit.ValueTransforms.$anonfun$3(ValueTransforms.scala:37)
    at munit.ValueTransforms$$Lambda/0x00003fc002800b00.apply(Unknown Source)
    at scala.util.Try$.apply(Try.scala:217)
    at munit.ValueTransforms.munitValueTransform(ValueTransforms.scala:37)
    at munit.ValueTransforms.munitValueTransform$(ValueTransforms.scala:8)
    at munit.FunSuite.munitValueTransform(FunSuite.scala:11)
    at munit.BaseFunSuite.test$$anonfun$1$$anonfun$1(FunSuite.scala:37)
    at munit.BaseFunSuite$$Lambda/0x00003fc002828000.apply(Unknown Source)
    at munit.internal.PlatformCompat$$anon$3.run(PlatformCompat.scala:69)
    at munit.Suite$$anon$1.execute(Suite.scala:28)
    at munit.internal.PlatformCompat$.waitAtMost(PlatformCompat.scala:74)
    at munit.BaseFunSuite.waitForCompletion(FunSuite.scala:51)
    at munit.BaseFunSuite.test$$anonfun$1(FunSuite.scala:37)
    at munit.BaseFunSuite$$Lambda/0x00003fc0027d8210.apply(Unknown Source)
    at munit.MUnitRunner.$anonfun$6$$anonfun$1(MUnitRunner.scala:347)
    at munit.MUnitRunner$$Lambda/0x00003fc002827560.apply(Unknown Source)
    at munit.internal.console.StackTraces$.dropOutside(StackTraces.scala:12)
    at munit.MUnitRunner.$anonfun$6(MUnitRunner.scala:347)
    at munit.MUnitRunner$$Lambda/0x00003fc002826dc0.apply(Unknown Source)
    at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:470)
    at munit.Suite$$anon$1.execute(Suite.scala:28)
    at scala.concurrent.impl.Promise$Transformation.submitWithValue(Promise.scala:429)
    at scala.concurrent.impl.Promise$DefaultPromise.submitWithValue(Promise.scala:338)
    at scala.concurrent.impl.Promise$DefaultPromise.dispatchOrAddCallbacks(Promise.scala:312)
    at scala.concurrent.impl.Promise$DefaultPromise.flatMap(Promise.scala:176)
    at munit.MUnitRunner.runTestBody(MUnitRunner.scala:357)
    at munit.MUnitRunner.runTest(MUnitRunner.scala:324)
    at munit.MUnitRunner.runTests$$anonfun$1(MUnitRunner.scala:145)
    at munit.MUnitRunner$$Lambda/0x00003fc0028225e8.apply(Unknown Source)
    at scala.collection.Iterator$$anon$9.next(Iterator.scala:584)
    at munit.MUnitRunner.loop$1(MUnitRunner.scala:160)
    at munit.MUnitRunner.sequenceFutures(MUnitRunner.scala:173)
    at munit.MUnitRunner.runTests(MUnitRunner.scala:145)
    at munit.MUnitRunner.runAll$$anonfun$1(MUnitRunner.scala:188)
    at munit.MUnitRunner$$Lambda/0x00003fc002822218.apply(Unknown Source)
    at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:470)
    at munit.Suite$$anon$1.execute(Suite.scala:28)
    at scala.concurrent.impl.Promise$Transformation.submitWithValue(Promise.scala:429)
    at scala.concurrent.impl.Promise$DefaultPromise.submitWithValue(Promise.scala:338)
    at scala.concurrent.impl.Promise$DefaultPromise.dispatchOrAddCallbacks(Promise.scala:312)
    at scala.concurrent.impl.Promise$DefaultPromise.flatMap(Promise.scala:176)
    at munit.MUnitRunner.runAll(MUnitRunner.scala:194)
    at munit.MUnitRunner.runAsync(MUnitRunner.scala:130)
    at munit.MUnitRunner.run(MUnitRunner.scala:121)
    at munit.internal.junitinterface.JUnitRunnerWrapper.run(JUnitRunnerWrapper.java:24)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
    at munit.internal.junitinterface.JUnitTask.execute(JUnitTask.java:87)
    at sbt.TestRunner.runTest$1(TestFramework.scala:153)
    at sbt.TestRunner.run(TestFramework.scala:168)
    at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1(TestFramework.scala:336)
    at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1$$Lambda/0x00003fc002771ba0.apply(Unknown Source)
    at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:296)
    at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
    at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
    at sbt.TestFunction.apply(TestFramework.scala:348)
    at sbt.Tests$.$anonfun$toTask$1(Tests.scala:436)
    at sbt.Tests$$$Lambda/0x00003fc002767a98.apply(Unknown Source)
    at sbt.std.Transform$$anon$3.$anonfun$apply$2(Transform.scala:47)
    at sbt.std.Transform$$anon$3$$Lambda/0x00003fc00188b700.apply(Unknown Source)
    at sbt.std.Transform$$anon$4.work(Transform.scala:69)
    at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
    at sbt.Execute$$Lambda/0x00003fc001890000.apply(Unknown Source)
    at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
    at sbt.Execute.work(Execute.scala:292)
    at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
    at sbt.Execute$$Lambda/0x00003fc00188c3d8.apply(Unknown Source)
    at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
    at sbt.ConcurrentRestrictions$$anon$4$$Lambda/0x00003fc00188f300.apply(Unknown Source)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.Executors$RunnableAdapter.call(java.base@23/Executors.java:572)
    at java.util.concurrent.FutureTask.run(java.base@23/FutureTask.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1144)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"munit-scheduler-1" #250 [11168] daemon prio=5 os_prio=0 cpu=2.37ms elapsed=82.93s tid=0x0000fffe8089b760 nid=11168 waiting on condition  [0x0000fffe5a5ff000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@23/Native Method)
    - parking to wait for  <0x00000007276e63a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@23/LockSupport.java:371)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23/AbstractQueuedSynchronizer.java:519)
    at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23/ForkJoinPool.java:4021)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23/ForkJoinPool.java:3967)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23/AbstractQueuedSynchronizer.java:1712)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23/ScheduledThreadPoolExecutor.java:1170)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23/ScheduledThreadPoolExecutor.java:899)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23/ThreadPoolExecutor.java:1070)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23/ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23/ThreadPoolExecutor.java:642)
    at java.lang.Thread.runWith(java.base@23/Thread.java:1588)
    at java.lang.Thread.run(java.base@23/Thread.java:1575)

"Attach Listener" #251 [11307] daemon prio=9 os_prio=0 cpu=0.25ms elapsed=45.64s tid=0x0000ffff3c000ed0 nid=11307 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"G1 Conc#1" os_prio=0 cpu=3725.34ms elapsed=126.29s tid=0x0000ffff5c000c70 nid=10755 runnable  

"GC Thread#7" os_prio=0 cpu=1125.76ms elapsed=126.39s tid=0x0000ffff4000e6a0 nid=10751 runnable  

"GC Thread#6" os_prio=0 cpu=1083.68ms elapsed=126.40s tid=0x0000ffff4000d890 nid=10750 runnable  

"GC Thread#5" os_prio=0 cpu=1111.12ms elapsed=126.40s tid=0x0000ffff4000af20 nid=10749 runnable  

"GC Thread#4" os_prio=0 cpu=1137.55ms elapsed=126.40s tid=0x0000ffff4000a720 nid=10748 runnable  

"GC Thread#3" os_prio=0 cpu=1084.04ms elapsed=126.47s tid=0x0000ffff40009370 nid=10741 runnable  

"GC Thread#2" os_prio=0 cpu=1104.38ms elapsed=126.47s tid=0x0000ffff40008920 nid=10740 runnable  

"GC Thread#1" os_prio=0 cpu=1183.16ms elapsed=126.47s tid=0x0000ffff40007ed0 nid=10739 runnable  

"VM Thread" os_prio=0 cpu=72.96ms elapsed=126.68s tid=0x0000ffff88108c10 nid=10728 runnable  

"VM Periodic Task Thread" os_prio=0 cpu=66.05ms elapsed=126.68s tid=0x0000ffff880f6df0 nid=10727 waiting on condition  

"G1 Service" os_prio=0 cpu=10.77ms elapsed=126.68s tid=0x0000ffff880deb70 nid=10726 runnable  

"G1 Refine#0" os_prio=0 cpu=138.85ms elapsed=126.68s tid=0x0000ffff880ddb90 nid=10725 runnable  

"G1 Conc#0" os_prio=0 cpu=3718.27ms elapsed=126.68s tid=0x0000ffff8809c310 nid=10724 runnable  

"G1 Main Marker" os_prio=0 cpu=11.16ms elapsed=126.68s tid=0x0000ffff8809b440 nid=10723 runnable  

"GC Thread#0" os_prio=0 cpu=1142.24ms elapsed=126.68s tid=0x0000ffff8808d840 nid=10722 runnable  

JNI global refs: 28, weak refs: 45
mio-19 commented 1 month ago
==> X chester.tyck.FilesTyckTest.letFunction  0.025s java.lang.InterruptedException: null                                                                                                                                                   
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1100)                                                                                                               
    at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)                                                                                                                                                                   
    at chester.syntax.core.Term$.derived$ReadWriter$lzyINIT5(Term.scala:124)                                                                                                                                                                
    at chester.syntax.core.Term$.derived$ReadWriter(Term.scala:124)                                                                                                                                                                         
    at chester.syntax.core.Term$.x22$lzyINIT1$1(Term.scala:124)                                                                                                                                                                             
    at chester.syntax.core.Term$.chester$syntax$core$Term$$$_$x22$1(Term.scala:124)                                                                                                                                                         
    at chester.syntax.core.Term$.derived$ReadWriter$lzyINIT5(Term.scala:124)                                                                                                                                                                
    at chester.syntax.core.Term$.derived$ReadWriter(Term.scala:124)                                                                                                                                                                         
    at chester.syntax.core.Judge$$anon$2.write0(Judge.scala:5)                                                                                                                                                                              
    at chester.syntax.core.Judge$$anon$2.write0(Judge.scala:5)                                                                                                                                                                              
    at upickle.core.Types$Writer.write(Types.scala:143)                                                                                                                                                                                     
    at upickle.core.Types$Writer.write$(Types.scala:131)                                                                                                                                                                                    
    at chester.syntax.core.Judge$$anon$2.write(Judge.scala:13)                                                                                                                                                                              
    at upickle.core.Types$$anon$3.write0(Types.scala:63)                                                                                                                                                                                    
    at upickle.core.Types$Writer.write(Types.scala:143)                                                                                                                                                                                     
    at upickle.core.Types$Writer.write$(Types.scala:131)                                                                                                                                                                                    
    at upickle.core.Types$$anon$3.write(Types.scala:61)                                                                                                                                                                                     
    at upickle.core.Types$Writer.transform(Types.scala:139)                                                                                                                                                                                 
    at upickle.core.Types$Writer.transform$(Types.scala:131)                                                                                                                                                                                
    at upickle.core.Types$$anon$3.transform(Types.scala:61)                                                                                                                                                                                 
    at upickle.core.BufferedValue$.maybeSortKeysTransform(BufferedValue.scala:76)                                                                                                                                                           
    at upickle.Api.upickle$Api$$maybeSortKeysTransform(Api.scala:29)                                                                                                                                                                        
    at upickle.Api.write(Api.scala:54)                                                                                                                                                                                                      
    at upickle.Api.write$(Api.scala:16)                                                                                                                                                                                                     
    at upickle.default$.write(Api.scala:179)                                                                                                                                                                                                
    at chester.tyck.FilesTyckTest.$init$$$anonfun$1$$anonfun$1(FilesTyckTest.scala:30)