- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
scala-concurrent-tck test failures
Sun, 2012-02-19, 09:37
In addition to this failing regularly on windows, this failed on my mac pro just now, as follows.
[partest] java.util.concurrent.TimeoutException: Futures timed out after [0] milliseconds [partest] [partest] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:132) [partest] at scala.concurrent.impl.Promise$DefaultPromise.await(Promise.scala:135) [partest] at scala.concurrent.impl.ExecutionContextImpl.blocking(ExecutionContextImpl.scala:58) [partest] at scala.concurrent.ConcurrentPackageObject.blocking(ConcurrentPackageObject.scala:85) [partest] at FutureProjections$$anonfun$testFailedSuccessAwait$1.apply(scala-concurrent-tck.scala:324) [partest] at FutureProjections$$anonfun$testFailedSuccessAwait$1.apply(scala-concurrent-tck.scala:321) [partest] at TestBase$class.once(scala-concurrent-tck.scala:23) [partest] at Test$.once(scala-concurrent-tck.scala:402) [partest] at FutureProjections$class.testFailedSuccessAwait(scala-concurrent-tck.scala:320) [partest] at Test$.testFailedSuccessAwait(scala-concurrent-tck.scala:402) [partest] at FutureProjections$class.$init$(scala-concurrent-tck.scala:336) [partest] at Test$.<init>(scala-concurrent-tck.scala:403) [partest] at Test$.<clinit>(scala-concurrent-tck.scala) [partest] at Test.main(scala-concurrent-tck.scala) [partest] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [partest] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [partest] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [partest] at java.lang.reflect.Method.invoke(Method.java:597) [partest] at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:90) [partest] at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:38) [partest] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:159) [partest] at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:90) [partest] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:159) [partest] at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:28) [partest] at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:45) [partest] at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:35) [partest] at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:45) [partest] at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:70) [partest] at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92) [partest] at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101) [partest] at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) [partest] testing: [...]/files/jvm/scala-concurrent-tck.scala [FAILED]
Sun, 2012-02-19, 15:11
#2
Re: scala-concurrent-tck test failures
Hi,
I just fixed it. There was a race condition in the following test:
def testFailedSuccessAwait(): Unit = once { done => val f = future { 0 } try { blocking(f.failed, Duration(0, "ms")) // <- race condition because of 0 timeout assert(false) } catch { case nsee: NoSuchElementException => done() } }
Because of the 0 timeout, `blocking` throws a TimeoutException if the future isn't resolved, yet (which can happen sometimes).
I just submitted a pull request (209) which simply uses a greater timeout value (it won't increase the running time of the test, though).
Cheers, Philipp
On Feb 19, 2012, at 2:21 PM, Aleksandar Prokopec wrote:
I just fixed it. There was a race condition in the following test:
def testFailedSuccessAwait(): Unit = once { done => val f = future { 0 } try { blocking(f.failed, Duration(0, "ms")) // <- race condition because of 0 timeout assert(false) } catch { case nsee: NoSuchElementException => done() } }
Because of the 0 timeout, `blocking` throws a TimeoutException if the future isn't resolved, yet (which can happen sometimes).
I just submitted a pull request (209) which simply uses a greater timeout value (it won't increase the running time of the test, though).
Cheers, Philipp
On Feb 19, 2012, at 2:21 PM, Aleksandar Prokopec wrote:
I'll take a look at this and try to reproduce it.
Alex
On 2/19/12 9:37 AM, Paul Phillips wrote:-Ypk-74Hb8VFmJwUO+LtWUk2ZbDcA [at] mail [dot] gmail [dot] com" type="cite">In addition to this failing regularly on windows, this failed on my mac pro just now, as follows.[partest] java.util.concurrent.TimeoutException: Futures timed out after [0] milliseconds [partest] [partest] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:132) [partest] at scala.concurrent.impl.Promise$DefaultPromise.await(Promise.scala:135) [partest] at scala.concurrent.impl.ExecutionContextImpl.blocking(ExecutionContextImpl.scala:58) [partest] at scala.concurrent.ConcurrentPackageObject.blocking(ConcurrentPackageObject.scala:85) [partest] at FutureProjections$$anonfun$testFailedSuccessAwait$1.apply(scala-concurrent-tck.scala:324) [partest] at FutureProjections$$anonfun$testFailedSuccessAwait$1.apply(scala-concurrent-tck.scala:321) [partest] at TestBase$class.once(scala-concurrent-tck.scala:23) [partest] at Test$.once(scala-concurrent-tck.scala:402) [partest] at FutureProjections$class.testFailedSuccessAwait(scala-concurrent-tck.scala:320) [partest] at Test$.testFailedSuccessAwait(scala-concurrent-tck.scala:402) [partest] at FutureProjections$class.$init$(scala-concurrent-tck.scala:336) [partest] at Test$.<init>(scala-concurrent-tck.scala:403) [partest] at Test$.<clinit>(scala-concurrent-tck.scala) [partest] at Test.main(scala-concurrent-tck.scala) [partest] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [partest] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [partest] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [partest] at java.lang.reflect.Method.invoke(Method.java:597) [partest] at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:90) [partest] at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:38) [partest] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:159) [partest] at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:90) [partest] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:159) [partest] at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:28) [partest] at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:45) [partest] at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:35) [partest] at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:45) [partest] at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:70) [partest] at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92) [partest] at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101) [partest] at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) [partest] testing: [...]/files/jvm/scala-concurrent-tck.scala [FAILED]
-- Aleksandar Prokopec, Doctoral Assistant LAMP, IC, EPFL http://people.epfl.ch/aleksandar.prokopec
Sun, 2012-02-19, 15:31
#3
Re: scala-concurrent-tck test failures
Cool, thanks!
Alex
On 2/19/12 9:37 AM, Paul Phillips wrote: