GitHub user CodingCat opened a pull request:
https://github.com/apache/spark/pull/639
SPARK-1686: keep schedule() calling in the main thread
https://issues.apache.org/jira/browse/SPARK-1686
moved from original JIRA (by @markhamstra):
In deploy.master.Master, the completeRecovery method is the last thing to
be called when a standalone Master is recovering from failure. It is
responsible for resetting some state, relaunching drivers, and eventually
resuming its scheduling duties.
There are currently four places in Master.scala where completeRecovery is
called. Three of them are from within the actor's receive method, and aren't
problems. The last starts from within receive when the ElectedLeader message is
received, but the actual completeRecovery() call is made from the Akka
scheduler. That means that it will execute on a different scheduler thread, and
Master itself will end up running (i.e., schedule() ) from that Akka scheduler
thread.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/CodingCat/spark SPARK-1686
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/spark/pull/639.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #639
----
commit 02b37ca7e9256628e31cd56ba21d7e579c1233d6
Author: CodingCat <[email protected]>
Date: 2014-05-05T01:43:03Z
keep schedule() calling in the main thread
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---