if ( (pm.size() > 0) && !job.isCompleted() ) { // need to recover, apparently RM crashed. hmph.
for ( IDuccProcess proc : pm.values() ) { // build up Shares from the incoming state
ProcessState state = proc.getProcessState();
String pid = proc.getPID();
NodeIdentity ni = proc.getNodeIdentity();
if ( proc.isComplete() ) {
logger.debug(methodName, j.getId(), "Skipping process", pid, "on", ni.getName(), "beacause state is", state);
continue;
}
Machine m = scheduler.getMachine(ni);
if ( m == null ) { // not known, huh? maybe next epoch it will have checked in
refuse(j, "Cannot restore job because node " + ni.getName() + " is unknown.");
return false; // so we don't add it to global tables
} else {
DuccId id = proc.getDuccId();
Share s = new Share(id, m, j, m.getShareOrder()); // guess share order; scheduler will reset when it recovers job
long mem = proc.getResidentMemory();