1
1

Try and do a better job of cleanup in abnormal termination. Ensure the daemons whack session directories prior to disabling signal traps. Ensure that the HNP and daemons all cleanup when they are doing an internal abort.

This commit was SVN r22755.
Этот коммит содержится в:
Ralph Castain 2010-03-02 14:51:23 +00:00
родитель b692645772
Коммит cd1efbb41e
2 изменённых файлов: 14 добавлений и 5 удалений

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

@ -32,6 +32,7 @@
#include "orte/util/name_fns.h"
#include "orte/util/session_dir.h"
#include "orte/mca/ess/ess.h"
#include "orte/mca/odls/odls.h"
#include "orte/mca/errmgr/errmgr.h"
#include "orte/mca/errmgr/base/errmgr_private.h"
@ -75,8 +76,16 @@ void orte_errmgr_base_error_abort(int error_code, char *fmt, ...)
}
va_end(arglist);
/* cleanup my session directory */
orte_session_dir_finalize(ORTE_PROC_MY_NAME);
/* if I am a daemon or the HNP... */
if (ORTE_PROC_IS_HNP || ORTE_PROC_IS_DAEMON) {
/* whack my local procs */
orte_odls.kill_local_procs(NULL, false);
/* whack any session directories */
orte_session_dir_cleanup(ORTE_JOBID_WILDCARD);
} else {
/* cleanup my session directory */
orte_session_dir_finalize(ORTE_PROC_MY_NAME);
}
/* abnormal exit */
orte_ess.abort(error_code, false);

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

@ -870,6 +870,9 @@ static void shutdown_callback(int fd, short flags, void *arg)
*/
orte_odls.kill_local_procs(NULL, false);
/* whack any lingering session directory files from our jobs */
orte_session_dir_cleanup(ORTE_JOBID_WILDCARD);
/* cleanup the triggers */
OBJ_DESTRUCT(&orte_exit);
@ -903,9 +906,6 @@ static void shutdown_callback(int fd, short flags, void *arg)
#endif /* __WINDOWS__ */
}
/* whack any lingering session directory files from our jobs */
orte_session_dir_cleanup(ORTE_JOBID_WILDCARD);
/* Finalize and clean up ourselves */
ret = orte_finalize();
exit(orte_exit_status);