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)
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)