Skip to content

Deadlock in Scala 3 version of MiMa when analyzing scala 3 code #867

@lolgab

Description

@lolgab

After updating mill-mima to Scala 3 we noticed mimaReportBinaryIssues hanging.
This happens only when you use the Scala 3 artifact of mima-core and analyzing a Scala 3 library.
It seems to be related to changes in lazy val initialization in Scala 3.

Example stacktrace
"execution-contexts-threadpool-1-thread-7" #25 daemon prio=5 os_prio=31 cpu=209.05ms elapsed=28.52s tid=0x000000016080bc00 nid=0x9003 waiting on condition  [0x0000000280e47000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
	- parking to wait for  <0x0000000601384588> (a java.util.concurrent.CountDownLatch$Sync)
	at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:211)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire([email protected]/AbstractQueuedSynchronizer.java:715)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly([email protected]/AbstractQueuedSynchronizer.java:1047)
	at java.util.concurrent.CountDownLatch.await([email protected]/CountDownLatch.java:230)
	at com.typesafe.tools.mima.core.ClassInfo.superClasses$lzyINIT3(ClassInfo.scala:113)
	at com.typesafe.tools.mima.core.ClassInfo.superClasses(ClassInfo.scala:110)
	at com.typesafe.tools.mima.core.ClassInfo.thisAndSuperClasses$$anonfun$1(ClassInfo.scala:115)
	at com.typesafe.tools.mima.core.ClassInfo$$Lambda$5088/0x00000008015b1770.apply(Unknown Source)
	at scala.collection.Iterator$ConcatIteratorCell.headIterator(Iterator.scala:1213)
	at scala.collection.Iterator$ConcatIterator.advance$1(Iterator.scala:1177)
	at scala.collection.Iterator$ConcatIterator.hasNext(Iterator.scala:1188)
	at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:601)
	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)
	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1306)
	at com.typesafe.tools.mima.core.TastyUnpickler$.com$typesafe$tools$mima$core$TastyUnpickler$$anon$1$$_$forEachClass$$anonfun$2(TastyUnpickler.scala:71)
	at com.typesafe.tools.mima.core.TastyUnpickler$$anon$1$$Lambda$5085/0x00000008015b0b98.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:334)
	at com.typesafe.tools.mima.core.TastyUnpickler$$anon$1.forEachClass(TastyUnpickler.scala:72)
	at com.typesafe.tools.mima.core.TastyUnpickler$ClassTraverser.traverseClsDef(TastyUnpickler.scala:39)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traverse(TastyUnpickler.scala:306)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traversePkg$$anonfun$1(TastyUnpickler.scala:317)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser$$Lambda$5067/0x00000008015ab3e8.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:334)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traversePkg(TastyUnpickler.scala:317)
	at com.typesafe.tools.mima.core.TastyUnpickler$ClassTraverser.traversePkg(TastyUnpickler.scala:32)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traverse(TastyUnpickler.scala:305)
	at com.typesafe.tools.mima.core.TastyUnpickler$.copyAnnotations(TastyUnpickler.scala:74)
	at com.typesafe.tools.mima.core.TastyUnpickler$.unpickleClass(TastyUnpickler.scala:23)
	at com.typesafe.tools.mima.core.ClassfileParser.parseTasty(ClassfileParser.scala:150)
	at com.typesafe.tools.mima.core.ClassfileParser.parseClassAttributes$$anonfun$1(ClassfileParser.scala:60)
	at com.typesafe.tools.mima.core.ClassfileParser$$Lambda$5043/0x000000080159ac58.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at com.typesafe.tools.mima.core.ClassfileParser.parseAttributes$$anonfun$1(ClassfileParser.scala:80)
	at com.typesafe.tools.mima.core.ClassfileParser$$Lambda$5042/0x000000080159a868.apply$mcVI$sp(Unknown Source)
	at scala.runtime.java8.JFunction1$mcVI$sp.apply(JFunction1$mcVI$sp.scala:18)
	at scala.collection.immutable.Range.foreach(Range.scala:192)
	at com.typesafe.tools.mima.core.ClassfileParser.parseAttributes(ClassfileParser.scala:82)
	at com.typesafe.tools.mima.core.ClassfileParser.parseClassAttributes(ClassfileParser.scala:62)
	at com.typesafe.tools.mima.core.ClassfileParser.com$typesafe$tools$mima$core$ClassfileParser$$parseClass(ClassfileParser.scala:20)
	at com.typesafe.tools.mima.core.ClassfileParser$.parseInPlace(ClassfileParser.scala:171)
	at com.typesafe.tools.mima.core.ConcreteClassInfo.afterLoading(ClassInfo.scala:44)
	at com.typesafe.tools.mima.core.ClassInfo.superClass(ClassInfo.scala:73)
	at com.typesafe.tools.mima.core.ClassInfo.superClasses$lzyINIT3(ClassInfo.scala:112)
	at com.typesafe.tools.mima.core.ClassInfo.superClasses(ClassInfo.scala:110)
	at com.typesafe.tools.mima.core.ClassInfo.superClasses$lzyINIT3(ClassInfo.scala:112)
	at com.typesafe.tools.mima.core.ClassInfo.superClasses(ClassInfo.scala:110)
	at com.typesafe.tools.mima.core.ClassInfo.thisAndSuperClasses$$anonfun$1(ClassInfo.scala:115)
	at com.typesafe.tools.mima.core.ClassInfo$$Lambda$5088/0x00000008015b1770.apply(Unknown Source)
	at scala.collection.Iterator$ConcatIteratorCell.headIterator(Iterator.scala:1213)
	at scala.collection.Iterator$ConcatIterator.advance$1(Iterator.scala:1177)
	at scala.collection.Iterator$ConcatIterator.hasNext(Iterator.scala:1188)
	at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:601)
	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)
	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1306)
	at com.typesafe.tools.mima.core.TastyUnpickler$.com$typesafe$tools$mima$core$TastyUnpickler$$anon$1$$_$forEachClass$$anonfun$2(TastyUnpickler.scala:71)
	at com.typesafe.tools.mima.core.TastyUnpickler$$anon$1$$Lambda$5085/0x00000008015b0b98.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:334)
	at com.typesafe.tools.mima.core.TastyUnpickler$$anon$1.forEachClass(TastyUnpickler.scala:72)
	at com.typesafe.tools.mima.core.TastyUnpickler$ClassTraverser.traverseClsDef(TastyUnpickler.scala:39)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traverse(TastyUnpickler.scala:306)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traversePkg$$anonfun$1(TastyUnpickler.scala:317)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser$$Lambda$5067/0x00000008015ab3e8.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:334)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traversePkg(TastyUnpickler.scala:317)
	at com.typesafe.tools.mima.core.TastyUnpickler$ClassTraverser.traversePkg(TastyUnpickler.scala:32)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traverse(TastyUnpickler.scala:305)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traversePkg$$anonfun$1(TastyUnpickler.scala:317)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser$$Lambda$5067/0x00000008015ab3e8.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:334)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traversePkg(TastyUnpickler.scala:317)
	at com.typesafe.tools.mima.core.TastyUnpickler$ClassTraverser.traversePkg(TastyUnpickler.scala:32)
	at com.typesafe.tools.mima.core.TastyUnpickler$Traverser.traverse(TastyUnpickler.scala:305)
	at com.typesafe.tools.mima.core.TastyUnpickler$.copyAnnotations(TastyUnpickler.scala:74)
	at com.typesafe.tools.mima.core.TastyUnpickler$.unpickleClass(TastyUnpickler.scala:23)
	at com.typesafe.tools.mima.core.ClassfileParser.parseTasty(ClassfileParser.scala:150)
	at com.typesafe.tools.mima.core.ClassfileParser.parseClassAttributes$$anonfun$1(ClassfileParser.scala:60)
	at com.typesafe.tools.mima.core.ClassfileParser$$Lambda$5043/0x000000080159ac58.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at com.typesafe.tools.mima.core.ClassfileParser.parseAttributes$$anonfun$1(ClassfileParser.scala:80)
	at com.typesafe.tools.mima.core.ClassfileParser$$Lambda$5042/0x000000080159a868.apply$mcVI$sp(Unknown Source)
	at scala.runtime.java8.JFunction1$mcVI$sp.apply(JFunction1$mcVI$sp.scala:18)
	at scala.collection.immutable.Range.foreach(Range.scala:192)
	at com.typesafe.tools.mima.core.ClassfileParser.parseAttributes(ClassfileParser.scala:82)
	at com.typesafe.tools.mima.core.ClassfileParser.parseClassAttributes(ClassfileParser.scala:62)
	at com.typesafe.tools.mima.core.ClassfileParser.com$typesafe$tools$mima$core$ClassfileParser$$parseClass(ClassfileParser.scala:20)
	at com.typesafe.tools.mima.core.ClassfileParser$.parseInPlace(ClassfileParser.scala:171)
	at com.typesafe.tools.mima.core.ConcreteClassInfo.afterLoading(ClassInfo.scala:44)
	at com.typesafe.tools.mima.core.ClassInfo.flags(ClassInfo.scala:77)
	at com.typesafe.tools.mima.core.InfoLike.isPublic(InfoLike.scala:14)
	at com.typesafe.tools.mima.core.PackageInfo.isAccessible$1(PackageInfo.scala:82)
	at com.typesafe.tools.mima.core.PackageInfo.$anonfun$1(PackageInfo.scala:76)
	at com.typesafe.tools.mima.core.PackageInfo$$Lambda$5014/0x000000080158eb70.apply(Unknown Source)
	at scala.collection.Iterator$$anon$6.hasNext(Iterator.scala:479)
	at scala.collection.mutable.Growable.addAll(Growable.scala:61)
	at scala.collection.mutable.Growable.addAll$(Growable.scala:57)
	at scala.collection.immutable.SetBuilderImpl.addAll(Set.scala:405)
	at scala.collection.immutable.Set$.from(Set.scala:362)
	at scala.collection.IterableOnceOps.toSet(IterableOnce.scala:1469)
	at scala.collection.IterableOnceOps.toSet$(IterableOnce.scala:1469)
	at scala.collection.AbstractIterator.toSet(Iterator.scala:1306)
	at com.typesafe.tools.mima.core.PackageInfo.loop$1(PackageInfo.scala:76)
	at com.typesafe.tools.mima.core.PackageInfo.accessibleClasses$lzyINIT1(PackageInfo.scala:89)
	at com.typesafe.tools.mima.core.PackageInfo.accessibleClasses(PackageInfo.scala:74)
	at com.typesafe.tools.mima.lib.analyze.Analyzer$.analyze(Analyzer.scala:12)
	at com.typesafe.tools.mima.lib.MiMaLib.traversePackages(MiMaLib.scala:32)
	at com.typesafe.tools.mima.lib.MiMaLib.traversePackages$$anonfun$2(MiMaLib.scala:34)
	at com.typesafe.tools.mima.lib.MiMaLib$$Lambda$5022/0x0000000801590798.apply(Unknown Source)
	at scala.collection.immutable.List.flatMap(List.scala:294)
	at scala.collection.immutable.List.flatMap(List.scala:79)
	at com.typesafe.tools.mima.lib.MiMaLib.traversePackages(MiMaLib.scala:34)
	at com.typesafe.tools.mima.lib.MiMaLib.collectProblems(MiMaLib.scala:45)
	at com.github.lolgab.mill.mima.worker.MimaWorkerImpl.checkBC$1(MimaWorkerImpl.scala:51)
	at com.github.lolgab.mill.mima.worker.MimaWorkerImpl.$anonfun$3(MimaWorkerImpl.scala:57)
	at com.github.lolgab.mill.mima.worker.MimaWorkerImpl$$Lambda$4994/0x0000000801583000.apply(Unknown Source)
	at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:183)
	at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:179)
	at scala.collection.immutable.List.foldLeft(List.scala:79)
	at com.github.lolgab.mill.mima.worker.MimaWorkerImpl.reportBinaryIssues(MimaWorkerImpl.scala:49)
	at com.github.lolgab.mill.mima.Mima.mimaReportBinaryIssues$$anonfun$1(Mima.scala:223)
	at com.github.lolgab.mill.mima.Mima$$Lambda$3402/0x0000000801366478.apply(Unknown Source)
	at mill.define.Task$Named.evaluate(Task.scala:342)
	at mill.define.Task$Named.evaluate$(Task.scala:327)
	at mill.define.Task$Command.evaluate(Task.scala:406)
	at mill.exec.GroupExecution.$anonfun$15(GroupExecution.scala:332)
	at mill.exec.GroupExecution$$Lambda$3960/0x0000000801409c80.apply(Unknown Source)
	at mill.exec.GroupExecution$.wrap$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(GroupExecution.scala:584)
	at mill.exec.GroupExecution$$$Lambda$3988/0x0000000801410da8.apply(Unknown Source)
	at mill.define.Evaluator$.withCurrentEvaluator$$anonfun$2$$anonfun$1(Evaluator.scala:124)
	at mill.define.Evaluator$$$Lambda$2921/0x00000008012a5b30.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.Evaluator$.withCurrentEvaluator$$anonfun$2(Evaluator.scala:125)
	at mill.define.Evaluator$$$Lambda$2920/0x00000008012a5760.apply(Unknown Source)
	at scala.util.Using$.resource(Using.scala:296)
	at mill.define.Evaluator$.withCurrentEvaluator(Evaluator.scala:126)
	at mill.exec.GroupExecution$.wrap$$anonfun$1$$anonfun$1$$anonfun$1(GroupExecution.scala:591)
	at mill.exec.GroupExecution$$$Lambda$3977/0x000000080140e220.apply(Unknown Source)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:85)
	at mill.define.SystemStreams$$$Lambda$3578/0x00000008013a1e40.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:86)
	at mill.define.SystemStreams$$$Lambda$3574/0x00000008013a0dc0.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:87)
	at mill.define.SystemStreams$$$Lambda$3564/0x000000080139f560.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:88)
	at mill.define.SystemStreams$$$Lambda$3555/0x000000080139dd18.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at scala.Console$.withErr(Console.scala:193)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:89)
	at mill.define.SystemStreams$$$Lambda$3547/0x000000080139c198.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at scala.Console$.withOut(Console.scala:164)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1(SystemStreams.scala:90)
	at mill.define.SystemStreams$$$Lambda$3543/0x000000080139b118.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at scala.Console$.withIn(Console.scala:227)
	at mill.define.SystemStreams$.withStreams$$anonfun$1(SystemStreams.scala:91)
	at mill.define.SystemStreams$$$Lambda$3531/0x0000000801399598.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams(SystemStreams.scala:92)
	at mill.exec.GroupExecution$.wrap$$anonfun$1$$anonfun$1(GroupExecution.scala:592)
	at mill.exec.GroupExecution$$$Lambda$3969/0x000000080140ca00.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.exec.GroupExecution$.wrap$$anonfun$1(GroupExecution.scala:593)
	at mill.exec.GroupExecution$$$Lambda$3966/0x000000080140c1f0.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.exec.GroupExecution$.wrap(GroupExecution.scala:594)
	at mill.exec.GroupExecution.executeGroup$$anonfun$1(GroupExecution.scala:345)
	at mill.exec.GroupExecution$$Lambda$3938/0x0000000801403140.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.Vector.foreach(Vector.scala:2125)
	at mill.exec.GroupExecution.executeGroup(GroupExecution.scala:283)
	at mill.exec.GroupExecution.executeGroupCached$$anonfun$1(GroupExecution.scala:193)
	at mill.exec.GroupExecution$$Lambda$3660/0x00000008013b5138.apply(Unknown Source)
	at mill.api.Logger.withPromptLine(Logger.scala:74)
	at mill.api.Logger.withPromptLine$(Logger.scala:12)
	at mill.internal.PrefixLogger.withPromptLine(PrefixLogger.scala:21)
	at mill.exec.GroupExecution.executeGroupCached(GroupExecution.scala:253)
	at mill.exec.GroupExecution.executeGroupCached$(GroupExecution.scala:21)
	at mill.exec.Execution.executeGroupCached(Execution.scala:17)
	at mill.exec.Execution.evaluateTerminals$1$$anonfun$1$$anonfun$1(Execution.scala:223)
	at mill.exec.Execution$$Lambda$3484/0x000000080138c9c8.apply(Unknown Source)
	at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:467)
	at mill.exec.ExecutionContexts$.execute$$anonfun$1$$anonfun$2$$anonfun$1(ExecutionContexts.scala:65)
	at mill.exec.ExecutionContexts$.mill$exec$ExecutionContexts$ThreadPool$$_$execute$$anonfun$1$$anonfun$2$$anonfun$adapted$1(ExecutionContexts.scala:66)
	at mill.exec.ExecutionContexts$ThreadPool$$Lambda$3497/0x0000000801390580.apply(Unknown Source)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:85)
	at mill.define.SystemStreams$$$Lambda$3578/0x00000008013a1e40.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:86)
	at mill.define.SystemStreams$$$Lambda$3574/0x00000008013a0dc0.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:87)
	at mill.define.SystemStreams$$$Lambda$3564/0x000000080139f560.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:88)
	at mill.define.SystemStreams$$$Lambda$3555/0x000000080139dd18.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at scala.Console$.withErr(Console.scala:193)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1$$anonfun$1(SystemStreams.scala:89)
	at mill.define.SystemStreams$$$Lambda$3547/0x000000080139c198.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at scala.Console$.withOut(Console.scala:164)
	at mill.define.SystemStreams$.withStreams$$anonfun$1$$anonfun$1(SystemStreams.scala:90)
	at mill.define.SystemStreams$$$Lambda$3543/0x000000080139b118.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at scala.Console$.withIn(Console.scala:227)
	at mill.define.SystemStreams$.withStreams$$anonfun$1(SystemStreams.scala:91)
	at mill.define.SystemStreams$$$Lambda$3531/0x0000000801399598.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.define.SystemStreams$.withStreams(SystemStreams.scala:92)
	at mill.exec.ExecutionContexts$ThreadPool.execute$$anonfun$1$$anonfun$2(ExecutionContexts.scala:66)
	at mill.exec.ExecutionContexts$ThreadPool.execute$$anonfun$1$$anonfun$adapted$1(ExecutionContexts.scala:67)
	at mill.exec.ExecutionContexts$ThreadPool$$Lambda$3489/0x000000080138db20.apply(Unknown Source)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
	at mill.exec.ExecutionContexts$ThreadPool.execute$$anonfun$1(ExecutionContexts.scala:67)
	at mill.exec.ExecutionContexts$ThreadPool$$Lambda$3485/0x000000080138d000.apply$mcV$sp(Unknown Source)
	at mill.exec.ExecutionContexts$ThreadPool$PriorityRunnable.run(ExecutionContexts.scala:86)
	at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1136)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run([email protected]/Thread.java:833)

com-lihaoyi/mill#5189 (comment)

Commit that reproduces the deadlock:

com-lihaoyi/utest@32c12b9

with the following command:

./mill 'utest.jvm[3.3.3].mimaReportBinaryIssues'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions