As Tim pointed out we don't want to call orte_finalize in orte_abort.
However we do want to do a bit of cleanup on the node before we exit, specificly clean out the session directory. I also had a couple of the subsystems that don't depend upon peers (which is key) clean up as well. Pedantic formatting issue in oob_tcp.h This commit was SVN r7387.
Этот коммит содержится в:
родитель
789d49d613
Коммит
9d5af5f926
@ -153,7 +153,8 @@ static inline uint64_t ntoh64(uint64_t val)
|
||||
* when process names are used as indices.
|
||||
*/
|
||||
int mca_oob_tcp_process_name_compare(const orte_process_name_t* n1, const orte_process_name_t* n2);
|
||||
/**
|
||||
|
||||
/**
|
||||
* Obtain contact information for this host (e.g. <ipaddress>:<port>)
|
||||
*/
|
||||
|
||||
|
@ -23,6 +23,10 @@
|
||||
#include "include/constants.h"
|
||||
#include "runtime/runtime.h"
|
||||
#include "opal/util/output.h"
|
||||
#include "opal/runtime/opal_progress.h"
|
||||
#include "opal/event/event.h"
|
||||
#include "orte/util/session_dir.h"
|
||||
#include "orte/util/sys_info.h"
|
||||
|
||||
|
||||
int orte_abort(int status, char *fmt, ...)
|
||||
@ -42,6 +46,27 @@ int orte_abort(int status, char *fmt, ...)
|
||||
|
||||
/* Exit - do NOT do normal finalize as this will very likely
|
||||
* hang the process. We are aborting due to an abnormal condition
|
||||
* that precludes normal cleanup */
|
||||
* that precludes normal cleanup
|
||||
*
|
||||
* We do need to do the following bits to make sure we leave a
|
||||
* clean environment. Taken from orte_finalize():
|
||||
* - Assume errmgr cleans up child processes before we exit.
|
||||
*/
|
||||
|
||||
/* - Turn of progress engine */
|
||||
opal_progress_finalize();
|
||||
|
||||
/* - Turn off event loop */
|
||||
opal_event_fini();
|
||||
|
||||
/* - Clean up session directory */
|
||||
orte_session_dir_finalize(orte_process_info.my_name);
|
||||
|
||||
/* - Clean out the global structures (no necessary, but good practice) */
|
||||
orte_sys_info_finalize();
|
||||
orte_proc_info_finalize();
|
||||
orte_univ_info_finalize();
|
||||
|
||||
/* Now Exit */
|
||||
exit(status);
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user