-
Notifications
You must be signed in to change notification settings - Fork 21
requirement violation in BatchingExecutor #9304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Imported From: https://issues.scala-lang.org/browse/SI-9304?orig=1 |
@retronym said (edited on May 13, 2015 2:03:15 AM UTC): scala/scala@2.11.x...retronym:ticket/9304
|
@rkuhn said: One more thing: BatchingExecutor#72 might want to check if there actually are remaining tasks. |
Henning Wielenberg (henning.wielenberg) said: i somehow managed to get this exception in our project. But i cant give you any code at this point because it's spread across multiple components and i don't even know what is responsible for it. Versions: Here is the stack trace:
|
Any news about this topic? |
has anyone tried it in Scala 2.13.6 to see if the issue even still exists? |
To be fair, we did not. We're planning to upgrade to Scala 2.13.latest next month, but right now, we're facing this issue using Scala 2.12.12 and the latest Akka version. |
A lot of changes were made to |
I almost understand rkuhn's previous remark, that your |
BatchingExecutor has a thread local with internal runnables for Future/Promise. In blockOn method this threadLocal was set to Nil and if there are tasks to execute, it passed to Batch to execute immediately. Howerver, run method of Batch class requires that thread local must be null. It produces IllegalArgumentException and all unexecuted tasks are lost at this point (having Promise/Future onComplete callback never called, meaning - it will never be completed). Fixes scala/bug#9304
BatchingExecutor has a thread local with internal runnables for Future/Promise. In blockOn method this threadLocal was set to Nil and if there are tasks to execute, it passed to Batch to execute immediately. Howerver, run method of Batch class requires that thread local must be null. It produces IllegalArgumentException and all unexecuted tasks are lost at this point (having Promise/Future onComplete callback never called, meaning - it will never be completed). Fixes scala/bug#9304
The Play team found this flaw in Akka’s version of the BatchingExecutor, see akka/akka#17390 and playframework/playframework#4372.
The text was updated successfully, but these errors were encountered: