ucb-bar / chisel2-deprecated

chisel.eecs.berkeley.edu
387 stars 90 forks source link

The new tester is unstable #595

Closed SebastianBoe closed 8 years ago

SebastianBoe commented 8 years ago

Hi,

after upgrading Chisel from 9057cf0b52c9957f2f4de19de23e33ee0fdf20de to d30d444d49c69b1e2c9f771f1470053bf8e6c66e

I am no longer able to run multiple simulations in parallel using Tester.scala. Since it fails when I run jobs in parallel, but not serially, I assume a race condition was introduced in Tester.scala somewhere.

Sometimes the bug causes the simulation to give wrong results, sometimes I get the below stack trace.

I might try to narrow the issue down further or create an easily reproducible case later.

STARTING build/test/unit/Serializer//Serializer java.lang.IndexOutOfBoundsException at java.nio.Buffer.checkIndex(Buffer.java:532) at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:300) at Chisel.Tester$Channel.consume(Tester.scala:145) at Chisel.Tester.(Tester.scala:626) at TurboRav.JUnitTester.(JUnitTester.scala:15) at TurboRav.SerializerTest.(Serializertest.scala:5) at TurboRav.TurboRavTestRunner$$anonfun$28.apply(Turboravtester.scala:90) at TurboRav.TurboRavTestRunner$$anonfun$28.apply(Turboravtester.scala:90) at Chisel.Driver$.apply(Driver.scala:53) at Chisel.chiselMain$.apply(hcl.scala:63) at Chisel.chiselMainTest$.apply(hcl.scala:76) at TurboRav.TurboRavTestRunner$.main(Turboravtester.scala:89) at TurboRav.TurboRavTestRunner.main(Turboravtester.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at scala.reflect.internal.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:70) at scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31) at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:101) at scala.reflect.internal.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:70) at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:101) at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:22) at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:39) at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:29) at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:39) at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:65) at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87) at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98) at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103) at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

SebastianBoe commented 8 years ago

Still broken, see https://github.com/ucb-bar/chisel/commit/39cd7fa00dfc37ca7069e407890fde5c3a75141c#commitcomment-14740701