diff --git a/orte/mca/odls/base/odls_base_default_fns.c b/orte/mca/odls/base/odls_base_default_fns.c index 92fe5971c4..bed85583ff 100644 --- a/orte/mca/odls/base/odls_base_default_fns.c +++ b/orte/mca/odls/base/odls_base_default_fns.c @@ -1035,12 +1035,11 @@ void orte_odls_base_default_launch_local(int fd, short sd, void *cbdata) } } - orte_wait_cb(child, odls_base_default_wait_local_proc, NULL); if (ORTE_SUCCESS != (rc = fork_local(app, child, app->env, jobdat))) { - orte_wait_cb_cancel(child); child->exit_code = ORTE_ERR_SILENT; /* error message already output */ ORTE_ACTIVATE_PROC_STATE(&child->name, ORTE_PROC_STATE_FAILED_TO_START); } + orte_wait_cb(child, odls_base_default_wait_local_proc, NULL); /* if we indexed the argv, we need to restore it to * its original form */ diff --git a/orte/util/proc_info.h b/orte/util/proc_info.h index ed672062e9..12211a2a63 100644 --- a/orte/util/proc_info.h +++ b/orte/util/proc_info.h @@ -61,7 +61,8 @@ typedef uint32_t orte_proc_type_t; #define ORTE_PROC_DVM 0x0102 // DVM + daemon #define ORTE_PROC_IOF_ENDPT 0x1000 #define ORTE_PROC_SCHEDULER 0x2000 -#define ORTE_PROC_MASTER 0x4004 // Master + HNP +#define ORTE_PROC_MASTER_ACTUAL 0x4000 +#define ORTE_PROC_MASTER (ORTE_PROC_MASTER_ACTUAL + ORTE_PROC_HNP) #define ORTE_PROC_IS_SINGLETON (ORTE_PROC_SINGLETON & orte_process_info.proc_type) #define ORTE_PROC_IS_DAEMON (ORTE_PROC_DAEMON & orte_process_info.proc_type) @@ -75,7 +76,7 @@ typedef uint32_t orte_proc_type_t; #define ORTE_PROC_IS_DVM (ORTE_PROC_DVM & orte_process_info.proc_type) #define ORTE_PROC_IS_IOF_ENDPT (ORTE_PROC_IOF_ENDPT & orte_process_info.proc_type) #define ORTE_PROC_IS_SCHEDULER (ORTE_PROC_SCHEDULER & orte_process_info.proc_type) -#define ORTE_PROC_IS_MASTER (ORTE_PROC_MASTER & orte_process_info.proc_type) +#define ORTE_PROC_IS_MASTER (ORTE_PROC_MASTER_ACTUAL & orte_process_info.proc_type) /**