Skip to content

Another race condition in PipelineMainTest #741

Closed
@retronym

Description

@retronym

Jenkins CI failed of a commit in scala/scala#9276

Hung with:

"pool-1-thread-1" #11 prio=5 os_prio=0 tid=0x00007f17182e3800 nid=0x5bd1 runnable [0x00007f16ea9f0000]
   java.lang.Thread.State: RUNNABLE
	at scala.runtime.BoxesRunTime.equals2(BoxesRunTime.java:137)
	at scala.runtime.BoxesRunTime.equals(BoxesRunTime.java:123)
	at scala.collection.mutable.HashTable.elemEquals(HashTable.scala:365)
	at scala.collection.mutable.HashTable.elemEquals$(HashTable.scala:365)
	at scala.collection.mutable.LinkedHashSet.elemEquals(LinkedHashSet.scala:44)
	at scala.collection.mutable.HashTable.findEntry0(HashTable.scala:140)
	at scala.collection.mutable.HashTable.findOrAddEntry(HashTable.scala:169)
	at scala.collection.mutable.HashTable.findOrAddEntry$(HashTable.scala:167)
	at scala.collection.mutable.LinkedHashSet.findOrAddEntry(LinkedHashSet.scala:44)
	at scala.collection.mutable.LinkedHashSet.add(LinkedHashSet.scala:68)
	at scala.collection.mutable.LinkedHashSet.$plus$eq(LinkedHashSet.scala:63)
	at scala.tools.nsc.reporters.StoreReporter.doReport(StoreReporter.scala:35)
	at scala.tools.nsc.reporters.FilteringReporter.info0(Reporter.scala:92)
	at scala.reflect.internal.Reporter.echo(Reporting.scala:109)
	at scala.reflect.internal.Reporter.echo(Reporting.scala:108)
	at scala.tools.nsc.PipelineMainClass.writeDotFile(PipelineMain.scala:92)
	at scala.tools.nsc.PipelineMainClass.$anonfun$process$78(PipelineMain.scala:297)
	at scala.tools.nsc.PipelineMainClass.process(PipelineMain.scala:295)
	at scala.tools.nsc.PipelineMainTest.$anonfun$check$1(PipelineMainTest.scala:62)
	at scala.tools.nsc.PipelineMainTest.build$1(PipelineMainTest.scala:59)
	at scala.tools.nsc.PipelineMainTest.check(PipelineMainTest.scala:65)
	at scala.tools.nsc.PipelineMainTest.pipelineMainBuildsCombined(PipelineMainTest.scala:38)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at com.novocode.junit.JUnitRunner$1.execute(JUnitRunner.java:132)
	at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
	at sbt.ForkMain$Run$$Lambda$5/1394438858.call(Unknown Source)

Which is possibly due to multi-threaded use of StoreReporter which has an thread-unsafe collection inside it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions