1
1

Release child object when we are recording someone's relatives.

(Thanks to Mark Santcroos!)

Release routing list entries.
(Thanks to Mark Santcroos!)

Address some Coverity concerns
Этот коммит содержится в:
Mark Santcroos 2016-02-15 15:07:44 -06:00 коммит произвёл Ralph Castain
родитель 9dc79f4bc1
Коммит 14f0390b7d
6 изменённых файлов: 20 добавлений и 9 удалений

Просмотреть файл

@ -259,7 +259,7 @@ static void xcast_recv(int status, orte_process_name_t* sender,
orte_namelist_t *nm; orte_namelist_t *nm;
int ret, cnt; int ret, cnt;
opal_buffer_t *relay, *rly; opal_buffer_t *relay, *rly;
orte_daemon_cmd_flag_t command; orte_daemon_cmd_flag_t command = ORTE_DAEMON_NULL_CMD;
opal_buffer_t wireup; opal_buffer_t wireup;
opal_byte_object_t *bo; opal_byte_object_t *bo;
int8_t flag; int8_t flag;
@ -429,20 +429,24 @@ static void xcast_recv(int status, orte_process_name_t* sender,
opal_output(0, "%s grpcomm:direct:send_relay proc %s not found - cannot relay", opal_output(0, "%s grpcomm:direct:send_relay proc %s not found - cannot relay",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_NAME_PRINT(&nm->name)); ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_NAME_PRINT(&nm->name));
OBJ_RELEASE(rly); OBJ_RELEASE(rly);
OBJ_RELEASE(item);
continue; continue;
} }
if (ORTE_PROC_STATE_RUNNING < rec->state) { if (ORTE_PROC_STATE_RUNNING < rec->state) {
opal_output(0, "%s grpcomm:direct:send_relay proc %s not running - cannot relay", opal_output(0, "%s grpcomm:direct:send_relay proc %s not running - cannot relay",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_NAME_PRINT(&nm->name)); ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_NAME_PRINT(&nm->name));
OBJ_RELEASE(rly); OBJ_RELEASE(rly);
OBJ_RELEASE(item);
continue; continue;
} }
if (ORTE_SUCCESS != (ret = orte_rml.send_buffer_nb(&nm->name, rly, ORTE_RML_TAG_XCAST, if (ORTE_SUCCESS != (ret = orte_rml.send_buffer_nb(&nm->name, rly, ORTE_RML_TAG_XCAST,
orte_rml_send_callback, NULL))) { orte_rml_send_callback, NULL))) {
ORTE_ERROR_LOG(ret); ORTE_ERROR_LOG(ret);
OBJ_RELEASE(rly); OBJ_RELEASE(rly);
OBJ_RELEASE(item);
continue; continue;
} }
OBJ_RELEASE(item);
} }
OBJ_RELEASE(rly); // retain accounting OBJ_RELEASE(rly); // retain accounting

Просмотреть файл

@ -101,6 +101,7 @@ void orte_plm_base_daemons_reported(int fd, short args, void *cbdata)
OBJ_RELEASE(caddy); OBJ_RELEASE(caddy);
return; return;
} }
t = NULL;
if (NULL == (node = dmn1->node) || if (NULL == (node = dmn1->node) ||
NULL == (t = node->topology)) { NULL == (t = node->topology)) {
/* something is wrong */ /* something is wrong */

Просмотреть файл

@ -835,6 +835,7 @@ static void radix_tree(int rank, int *num_children,
} }
/* point to this relations */ /* point to this relations */
relations = relatives; relations = relatives;
OBJ_RELEASE(child);
} }
/* search for this child's relatives */ /* search for this child's relatives */
radix_tree(peer, NULL, NULL, relations); radix_tree(peer, NULL, NULL, relations);

Просмотреть файл

@ -603,6 +603,11 @@ void orte_state_base_check_all_complete(int fd, short args, void *cbdata)
orte_iof.complete(jdata); orte_iof.complete(jdata);
} }
/* tell the PMIx server to release its data */
if (NULL != opal_pmix.server_deregister_nspace) {
opal_pmix.server_deregister_nspace(jdata->jobid);
}
i32ptr = &i32; i32ptr = &i32;
if (orte_get_attribute(&jdata->attributes, ORTE_JOB_NUM_NONZERO_EXIT, (void**)&i32ptr, OPAL_INT32) && !orte_abort_non_zero_exit) { if (orte_get_attribute(&jdata->attributes, ORTE_JOB_NUM_NONZERO_EXIT, (void**)&i32ptr, OPAL_INT32) && !orte_abort_non_zero_exit) {
if (!orte_report_child_jobs_separately || 1 == ORTE_LOCAL_JOBID(jdata->jobid)) { if (!orte_report_child_jobs_separately || 1 == ORTE_LOCAL_JOBID(jdata->jobid)) {
@ -710,10 +715,6 @@ void orte_state_base_check_all_complete(int fd, short args, void *cbdata)
} }
OBJ_RELEASE(map); OBJ_RELEASE(map);
jdata->map = NULL; jdata->map = NULL;
/* tell the PMIx server to release its data */
if (NULL != opal_pmix.server_deregister_nspace) {
opal_pmix.server_deregister_nspace(jdata->jobid);
}
} }
CHECK_ALIVE: CHECK_ALIVE:

Просмотреть файл

@ -381,6 +381,11 @@ static void check_complete(int fd, short args, void *cbdata)
orte_iof.complete(jdata); orte_iof.complete(jdata);
} }
/* tell the PMIx subsystem the job is complete */
if (NULL != opal_pmix.server_deregister_nspace) {
opal_pmix.server_deregister_nspace(jdata->jobid);
}
/* Release the resources used by this job. Since some errmgrs may want /* Release the resources used by this job. Since some errmgrs may want
* to continue using resources allocated to the job as part of their * to continue using resources allocated to the job as part of their
* fault recovery procedure, we only do this once the job is "complete". * fault recovery procedure, we only do this once the job is "complete".
@ -427,10 +432,6 @@ static void check_complete(int fd, short args, void *cbdata)
} }
OBJ_RELEASE(map); OBJ_RELEASE(map);
jdata->map = NULL; jdata->map = NULL;
/* tell the PMIx server to release its data */
if (NULL != opal_pmix.server_deregister_nspace) {
opal_pmix.server_deregister_nspace(jdata->jobid);
}
} }
if (ORTE_FLAG_TEST(jdata, ORTE_JOB_FLAG_DEBUGGER_DAEMON)) { if (ORTE_FLAG_TEST(jdata, ORTE_JOB_FLAG_DEBUGGER_DAEMON)) {

Просмотреть файл

@ -486,6 +486,9 @@ int orte_submit_init(int argc, char *argv[],
orte_show_help("help-orte-top.txt", "orte-top:hnp-filename-access", true, myglobals.hnp); orte_show_help("help-orte-top.txt", "orte-top:hnp-filename-access", true, myglobals.hnp);
exit(1); exit(1);
} }
/* initialize the input to NULLs to ensure any input
* string is NULL-terminated */
memset(input, 0, 1024);
if (NULL == fgets(input, 1024, fp)) { if (NULL == fgets(input, 1024, fp)) {
/* something malformed about file */ /* something malformed about file */
fclose(fp); fclose(fp);