Hi, I'm unit-testing an Akka application and I'm triggering an assert upon a reentrant call to BatchingExecutor, which seems to me to be caused by the usage of the CallingThreadDispatcher. I'm still working on isolating the problem, but this does seem like a scenario we easily get into when using the CallingThreadDispatcher. Has anyone else experienced this?
TaskInvocation - TaskInvocation requirement failed java.lang.IllegalArgumentException: requirement failed at scala.Predef$.require(Predef.scala:221) ~[scala-library-2.10.3.jar:na] at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:55) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.testkit.CallingThreadDispatcher.executeTask(CallingThreadDispatcher.scala:213) ~[akka-testkit_2.10-2.2.4.jar:na] at akka.dispatch.MessageDispatcher.unbatchedExecute(AbstractDispatcher.scala:143) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:76) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) ~[scala-library-2.10.3.jar:na] at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.testkit.CallingThreadDispatcher.executeTask(CallingThreadDispatcher.scala:213) ~[akka-testkit_2.10-2.2.4.jar:na] at akka.dispatch.MessageDispatcher.unbatchedExecute(AbstractDispatcher.scala:143) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.BatchingExecutor$class.execute(BatchingExecutor.scala:110) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.dispatch.MessageDispatcher.execute(AbstractDispatcher.scala:83) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) ~[scala-library-2.10.3.jar:na] at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Promise$class.complete(Promise.scala:55) ~[scala-library-2.10.3.jar:na] at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) ~[scala-library-2.10.3.jar:na] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$Batch$$anonfun$run$1.processBatch$1(Future.scala:640) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$Batch$$anonfun$run$1.apply$mcV$sp(Future.scala:655) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$Batch$$anonfun$run$1.apply(Future.scala:632) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$Batch$$anonfun$run$1.apply(Future.scala:632) ~[scala-library-2.10.3.jar:na] at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$Batch.run(Future.scala:631) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$.scala$concurrent$Future$InternalCallbackExecutor$$unbatchedExecute(Future.scala:691) ~[scala-library-2.10.3.jar:na] at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:682) ~[scala-library-2.10.3.jar:na] at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) ~[scala-library-2.10.3.jar:na] at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) ~[scala-library-2.10.3.jar:na] at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:269) ~[akka-actor_2.10-2.2.4.jar:2.2.4] at akka.actor.ActorRef.tell(ActorRef.scala:125) ~[akka-actor_2.10-2.2.4.jar:2.2.4] Thanks, Duarte -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
