diff --git a/orte/mca/state/base/state_base_fns.c b/orte/mca/state/base/state_base_fns.c index 797e02c8f8..519a692235 100644 --- a/orte/mca/state/base/state_base_fns.c +++ b/orte/mca/state/base/state_base_fns.c @@ -928,6 +928,7 @@ void orte_state_base_check_all_complete(int fd, short args, void *cbdata) /* this was a debugger daemon. notify that a debugger has detached */ ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_DEBUGGER_DETACH); } + opal_hash_table_set_value_uint32(orte_job_data, jdata->jobid, NULL); OBJ_RELEASE(jdata); } } diff --git a/orte/mca/state/dvm/state_dvm.c b/orte/mca/state/dvm/state_dvm.c index 2772046300..18986f1570 100644 --- a/orte/mca/state/dvm/state_dvm.c +++ b/orte/mca/state/dvm/state_dvm.c @@ -457,5 +457,10 @@ static void check_complete(int fd, short args, void *cbdata) static void cleanup_job(int sd, short args, void *cbdata) { orte_state_caddy_t *caddy = (orte_state_caddy_t*)cbdata; + orte_job_t *jdata = caddy->jdata; + + /* remove this object from the job array */ + opal_hash_table_set_value_uint32(orte_job_data, jdata->jobid, NULL); + OBJ_RELEASE(caddy); } diff --git a/orte/tools/orte-dvm/orte-dvm.c b/orte/tools/orte-dvm/orte-dvm.c index 958a842d79..d7c6b3ab38 100644 --- a/orte/tools/orte-dvm/orte-dvm.c +++ b/orte/tools/orte-dvm/orte-dvm.c @@ -477,6 +477,7 @@ static void send_callback(int status, orte_process_name_t *peer, OBJ_RELEASE(buffer); /* cleanup the job object */ + opal_hash_table_set_value_uint32(orte_job_data, jdata->jobid, NULL); OBJ_RELEASE(jdata); } @@ -530,4 +531,3 @@ static void notify_requestor(int sd, short args, void *cbdata) * up in the send callback */ OBJ_RELEASE(caddy); } -