diff --git a/orte/mca/plm/base/plm_base_receive.c b/orte/mca/plm/base/plm_base_receive.c index fc690b2307..76f3f935ca 100644 --- a/orte/mca/plm/base/plm_base_receive.c +++ b/orte/mca/plm/base/plm_base_receive.c @@ -312,7 +312,9 @@ void orte_plm_base_recv(int status, orte_process_name_t* sender, ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND); ORTE_FORCED_TERMINATE(ORTE_ERROR_DEFAULT_EXIT_CODE); } - proc->state = state; + /* NEVER update the proc state before activating the state machine - let + * the state cbfunc update it as it may need to compare this + * state against the prior proc state */ proc->pid = pid; proc->exit_code = exit_code; ORTE_ACTIVATE_PROC_STATE(&name, state);