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
Этот коммит содержится в:
родитель
9dc79f4bc1
Коммит
14f0390b7d
@ -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);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user