zuotingbing commented on a change in pull request #24848: [SPARK-28014][core] 
All waiting apps will be changed to the wrong state of Running after master 
changed.
URL: https://github.com/apache/spark/pull/24848#discussion_r295741095
 
 

 ##########
 File path: core/src/main/scala/org/apache/spark/deploy/master/Master.scala
 ##########
 @@ -561,7 +561,7 @@ private[deploy] class Master(
     apps.filter(_.state == ApplicationState.UNKNOWN).foreach(finishApplication)
 
     // Update the state of recovered apps to RUNNING
-    apps.filter(_.state == ApplicationState.WAITING).foreach(_.state = 
ApplicationState.RUNNING)
+    apps.filter(_.coresGranted > 0).foreach(_.state = ApplicationState.RUNNING)
 
 Review comment:
   Further learning the logic of recover app when master has changed, i found 
that in function RegisterApplication , an app is created and then stored in 
persistenceEngine:  `persistenceEngine.addApplication(app)` as WAITING state. 
When master has changed, recover app from the stored data and register 
application again with WAITING state. The current fix maybe right(after 
recover,the app is on WAITING with init state, then change to RUNNING as long 
as it gained an executor), otherwise the stored app data in persistenceEngine 
is wrong.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to