code: private synchronized boolean canLaunchSetupTask() {
      return (tasksInited.get() && status.getRunState() == JobStatus.PREP &&
             !launchedSetup && !jobKilled && !jobFailed);
    }
docs: Check whether setup task can be launched for the job.
  
  Setup task can be launched after the tasks are inited
  and Job is in PREP state
  and if it is not already launched
  or job is not Killed/Failed
  @return true/false