Fix a segv when an application isn't found - ensure we properly terminate.
This commit was SVN r20395.
Этот коммит содержится в:
родитель
c3261e1a05
Коммит
d207c17adf
@ -1023,13 +1023,9 @@ int orte_odls_base_default_launch_local(orte_jobid_t job,
|
|||||||
item != opal_list_get_end(&orte_local_children);
|
item != opal_list_get_end(&orte_local_children);
|
||||||
item = opal_list_get_next(item)) {
|
item = opal_list_get_next(item)) {
|
||||||
child = (orte_odls_child_t*)item;
|
child = (orte_odls_child_t*)item;
|
||||||
if (OPAL_EQUAL == opal_dss.compare(&job, &(child->name->jobid), ORTE_JOBID)) {
|
if (OPAL_EQUAL == opal_dss.compare(&job, &(child->name->jobid), ORTE_JOBID) &&
|
||||||
if (i == child->app_idx) {
|
i == child->app_idx) {
|
||||||
child->exit_code = rc;
|
child->exit_code = rc;
|
||||||
} else {
|
|
||||||
child->state = ORTE_PROC_STATE_UNDEF;
|
|
||||||
child->exit_code = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* okay, now tell the HNP we couldn't do it */
|
/* okay, now tell the HNP we couldn't do it */
|
||||||
@ -1096,7 +1092,17 @@ int orte_odls_base_default_launch_local(orte_jobid_t job,
|
|||||||
if (NULL != mpiexec_pathenv) {
|
if (NULL != mpiexec_pathenv) {
|
||||||
opal_argv_free(argvptr);
|
opal_argv_free(argvptr);
|
||||||
}
|
}
|
||||||
|
/* cycle through children to find those for this jobid */
|
||||||
|
for (item = opal_list_get_first(&orte_local_children);
|
||||||
|
item != opal_list_get_end(&orte_local_children);
|
||||||
|
item = opal_list_get_next(item)) {
|
||||||
|
child = (orte_odls_child_t*)item;
|
||||||
|
if (OPAL_EQUAL == opal_dss.compare(&job, &(child->name->jobid), ORTE_JOBID) &&
|
||||||
|
i == child->app_idx) {
|
||||||
child->exit_code = rc;
|
child->exit_code = rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* okay, now tell the HNP we couldn't do it */
|
||||||
goto CLEANUP;
|
goto CLEANUP;
|
||||||
}
|
}
|
||||||
if (NULL != mpiexec_pathenv) {
|
if (NULL != mpiexec_pathenv) {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user