We added another layer to the session directory tree (the jobfam layer), but we forgot to include it in the teardown procedure, thus causing us to leave droppings behind. Add the jobfam_session_dir to the teardown, and ensure that all levels are addressed
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
родитель
d31f173744
Коммит
9c596a6f54
@ -12,7 +12,7 @@
|
||||
* Copyright (c) 2014 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2015 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2015-2016 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -443,8 +443,6 @@ CLEANUP:
|
||||
int
|
||||
orte_session_dir_finalize(orte_process_name_t *proc)
|
||||
{
|
||||
int rc=ORTE_SUCCESS;
|
||||
|
||||
if (!orte_create_session_dirs || orte_process_info.rm_session_dirs ) {
|
||||
/* we haven't created them or RM will clean them up for us*/
|
||||
return ORTE_SUCCESS;
|
||||
@ -458,14 +456,15 @@ orte_session_dir_finalize(orte_process_name_t *proc)
|
||||
* accidentally removing directories we shouldn't
|
||||
* touch
|
||||
*/
|
||||
rc = ORTE_ERR_NOT_INITIALIZED;
|
||||
goto CLEANUP;
|
||||
return ORTE_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
opal_os_dirpath_destroy(orte_process_info.proc_session_dir,
|
||||
false, orte_dir_check_file);
|
||||
opal_os_dirpath_destroy(orte_process_info.job_session_dir,
|
||||
false, orte_dir_check_file);
|
||||
opal_os_dirpath_destroy(orte_process_info.jobfam_session_dir,
|
||||
false, orte_dir_check_file);
|
||||
if( NULL != orte_process_info.top_session_dir ){
|
||||
opal_os_dirpath_destroy(orte_process_info.top_session_dir,
|
||||
false, orte_dir_check_file);
|
||||
@ -485,7 +484,6 @@ orte_session_dir_finalize(orte_process_name_t *proc)
|
||||
opal_output(0, "sess_dir_finalize: proc session dir not empty - leaving");
|
||||
}
|
||||
}
|
||||
goto CLEANUP;
|
||||
}
|
||||
|
||||
if (opal_os_dirpath_is_empty(orte_process_info.job_session_dir)) {
|
||||
@ -502,7 +500,22 @@ orte_session_dir_finalize(orte_process_name_t *proc)
|
||||
opal_output(0, "sess_dir_finalize: job session dir not empty - leaving");
|
||||
}
|
||||
}
|
||||
goto CLEANUP;
|
||||
}
|
||||
|
||||
if (opal_os_dirpath_is_empty(orte_process_info.jobfam_session_dir)) {
|
||||
if (orte_debug_flag) {
|
||||
opal_output(0, "sess_dir_finalize: found jobfam session dir empty - deleting");
|
||||
}
|
||||
rmdir(orte_process_info.jobfam_session_dir);
|
||||
} else {
|
||||
if (orte_debug_flag) {
|
||||
if (OPAL_ERR_NOT_FOUND ==
|
||||
opal_os_dirpath_access(orte_process_info.jobfam_session_dir, 0)) {
|
||||
opal_output(0, "sess_dir_finalize: jobfam session dir does not exist");
|
||||
} else {
|
||||
opal_output(0, "sess_dir_finalize: jobfam session dir not empty - leaving");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(NULL != orte_process_info.top_session_dir) {
|
||||
@ -523,8 +536,7 @@ orte_session_dir_finalize(orte_process_name_t *proc)
|
||||
}
|
||||
}
|
||||
|
||||
CLEANUP:
|
||||
return rc;
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
static bool
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user