\hypertarget{errmgr_8h}{\section{orte/mca/errmgr/errmgr.h File Reference}
\label{errmgr_8h}\index{orte/mca/errmgr/errmgr.\+h@{orte/mca/errmgr/errmgr.\+h}}
}


The Open R\+T\+E Error and Recovery Manager (Err\+Mgr)  


{\ttfamily \#include \char`\"{}orte\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/constants.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/types.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/base/base.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+object.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+pointer\+\_\+array.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/util/output.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/util/error.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/runtime/orte\+\_\+globals.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/plm/plm\+\_\+types.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structorte__errmgr__predicted__proc__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+proc\+\_\+t}
\item 
struct \hyperlink{structorte__errmgr__predicted__node__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+node\+\_\+t}
\item 
struct \hyperlink{structorte__errmgr__predicted__map__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+map\+\_\+t}
\item 
struct \hyperlink{structorte__errmgr__base__module__2__3__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+2\+\_\+3\+\_\+0\+\_\+t}
\item 
struct \hyperlink{structorte__errmgr__base__component__3__0__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+component\+\_\+3\+\_\+0\+\_\+0\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{errmgr_8h_a2a621ec8e66b01f621d998d45a6e5c99}{\#define {\bfseries O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+A\+M\+E}(n)~opal\+\_\+strerror(n)}\label{errmgr_8h_a2a621ec8e66b01f621d998d45a6e5c99}

\item 
\hypertarget{errmgr_8h_a2cf21467564080e389d9bd6645429f71}{\#define {\bfseries O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R\+\_\+\+L\+O\+G}(n)~orte\+\_\+errmgr.\+log(n, \+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+);}\label{errmgr_8h_a2cf21467564080e389d9bd6645429f71}

\item 
\#define {\bfseries O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{errmgr_8h_a6ad38bc092e1abc5a4d3c66623c2c817}{typedef struct \\*
\hyperlink{structorte__errmgr__predicted__proc__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+proc\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+predicted\+\_\+proc\+\_\+t}}\label{errmgr_8h_a6ad38bc092e1abc5a4d3c66623c2c817}

\item 
\hypertarget{errmgr_8h_a7d7cce17aa13faa2363c89959398ca86}{typedef struct \\*
\hyperlink{structorte__errmgr__predicted__node__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+node\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+predicted\+\_\+node\+\_\+t}}\label{errmgr_8h_a7d7cce17aa13faa2363c89959398ca86}

\item 
\hypertarget{errmgr_8h_ad409fa50c7dfbeefc145bbecd7cecaef}{typedef void( {\bfseries orte\+\_\+errmgr\+\_\+fault\+\_\+callback\+\_\+t} )(\hyperlink{structopal__pointer__array__t}{opal\+\_\+pointer\+\_\+array\+\_\+t} $\ast$procs)}\label{errmgr_8h_ad409fa50c7dfbeefc145bbecd7cecaef}

\item 
\hypertarget{errmgr_8h_adec915ca991f5e08a96c2a3b5e8480c0}{typedef struct \\*
\hyperlink{structorte__errmgr__predicted__map__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+map\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+predicted\+\_\+map\+\_\+t}}\label{errmgr_8h_adec915ca991f5e08a96c2a3b5e8480c0}

\item 
typedef int($\ast$ \hyperlink{errmgr_8h_ac6f75d923aee4ad275c673f8373bb9b1}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module initialization function. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{errmgr_8h_aaa47044a06d21eca6263191c3e59ea30}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module finalization function. \end{DoxyCompactList}\item 
\hypertarget{errmgr_8h_a02bb1bbe68124863c12311b9fd5b1905}{typedef void($\ast$ \hyperlink{errmgr_8h_a02bb1bbe68124863c12311b9fd5b1905}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+log\+\_\+fn\+\_\+t} )(int error\+\_\+code, char $\ast$filename, int line)}\label{errmgr_8h_a02bb1bbe68124863c12311b9fd5b1905}

\begin{DoxyCompactList}\small\item\em This is not part of any module so it can be used at any time! \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{errmgr_8h_aaaeda3509a19d104f858242dc42be0c5}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t} )(int error\+\_\+code, char $\ast$fmt,...) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+funcptr\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+
\begin{DoxyCompactList}\small\item\em Alert -\/ self aborting This function is called when a process is aborting due to some internal error. \end{DoxyCompactList}\item 
typedef void($\ast$) typedef int($\ast$ \hyperlink{errmgr_8h_a1f597cae72d34d633ce27b2b9d2c3478}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$procs, \hyperlink{orte_2include_2orte_2types_8h_af3f907e5da1c517a07338513b0c21d6b}{orte\+\_\+std\+\_\+cntr\+\_\+t} num\+\_\+procs)
\begin{DoxyCompactList}\small\item\em Alert -\/ abort peers This function is called when a process wants to abort one or more peer processes. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{errmgr_8h_aa73ce9653478bcffa159d033a3d97b47}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t} )(\hyperlink{orte_2include_2orte_2types_8h_addefe647f31eee13c7f756f0d959a99b}{orte\+\_\+jobid\+\_\+t} job, orte\+\_\+job\+\_\+state\+\_\+t jobstate, \hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$proc\+\_\+name, orte\+\_\+proc\+\_\+state\+\_\+t state, pid\+\_\+t pid, orte\+\_\+exit\+\_\+code\+\_\+t exit\+\_\+code)
\begin{DoxyCompactList}\small\item\em Alert -\/ process aborted This function is called by the P\+L\+M when a remote process aborts during execution. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{errmgr_8h_a3f887e4285e00c3b813a5ef51b4817d1}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t} )(\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$proc\+\_\+list, \hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$node\+\_\+list, \hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$suggested\+\_\+map)
\begin{DoxyCompactList}\small\item\em Predicted process/node failure notification. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{errmgr_8h_a996881f7cfda4a49ea543591b5dd7d12}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t} )(\hyperlink{structorte__proc__t}{orte\+\_\+proc\+\_\+t} $\ast$proc, \hyperlink{structorte__node__t}{orte\+\_\+node\+\_\+t} $\ast$oldnode, \hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$node\+\_\+list)
\begin{DoxyCompactList}\small\item\em Suggest a node to map a restarting process onto. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{errmgr_8h_a99a41f7c1be1a5a87a4dd543dd7d2dee}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t} )(int state)
\begin{DoxyCompactList}\small\item\em Handle fault tolerance updates. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{errmgr_8h_a46fd9c9ae3096e54f7bb3c64c1a81d94}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t} )(struct timeval $\ast$tv)
\begin{DoxyCompactList}\small\item\em \hyperlink{structFunction}{Function} to perform actions that require the rest of the O\+R\+T\+E layer to be up and running. \end{DoxyCompactList}\item 
typedef \\*
orte\+\_\+errmgr\+\_\+fault\+\_\+callback\+\_\+t $\ast$($\ast$ \hyperlink{errmgr_8h_ac16c727fb1581306da8969c558f15d24}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t} )(orte\+\_\+errmgr\+\_\+fault\+\_\+callback\+\_\+t $\ast$cbfunc)
\begin{DoxyCompactList}\small\item\em Set the callback function for faults. \end{DoxyCompactList}\item 
\hypertarget{errmgr_8h_a869155d60cbde80f0042844904619028}{typedef struct \\*
\hyperlink{structorte__errmgr__base__module__2__3__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+2\+\_\+3\+\_\+0\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+2\+\_\+3\+\_\+0\+\_\+t}}\label{errmgr_8h_a869155d60cbde80f0042844904619028}

\item 
\hypertarget{errmgr_8h_ac9c4942b19c52b0672ac1ae830f64c93}{typedef \\*
\hyperlink{structorte__errmgr__base__module__2__3__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+2\+\_\+3\+\_\+0\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+t}}\label{errmgr_8h_ac9c4942b19c52b0672ac1ae830f64c93}

\item 
\hypertarget{errmgr_8h_abf93ac52bb9e1be75595bb9140ff7380}{typedef struct \\*
\hyperlink{structorte__errmgr__base__component__3__0__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+component\+\_\+3\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+base\+\_\+component\+\_\+3\+\_\+0\+\_\+0\+\_\+t}}\label{errmgr_8h_abf93ac52bb9e1be75595bb9140ff7380}

\item 
\hypertarget{errmgr_8h_a486f8a681fe13a27713badf8e822a3b8}{typedef \\*
\hyperlink{structorte__errmgr__base__component__3__0__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+component\+\_\+3\+\_\+0\+\_\+0\+\_\+t} {\bfseries orte\+\_\+errmgr\+\_\+base\+\_\+component\+\_\+t}}\label{errmgr_8h_a486f8a681fe13a27713badf8e822a3b8}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{errmgr_8h_a4176ffd78d5d21d1262189800ad76fde}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__errmgr__predicted__proc__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+proc\+\_\+t})}\label{errmgr_8h_a4176ffd78d5d21d1262189800ad76fde}

\item 
\hypertarget{errmgr_8h_aaccd877b090248ae1294a71662e90dff}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__errmgr__predicted__node__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+node\+\_\+t})}\label{errmgr_8h_aaccd877b090248ae1294a71662e90dff}

\item 
\hypertarget{errmgr_8h_ad1fd94fc1bc4dbe2747b6ed2baf42b0c}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__errmgr__predicted__map__t}{orte\+\_\+errmgr\+\_\+predicted\+\_\+map\+\_\+t})}\label{errmgr_8h_ad1fd94fc1bc4dbe2747b6ed2baf42b0c}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{errmgr_8h_ad4a7df800cd01d4701da032a462636aa}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \\*
orte\+\_\+errmgr\+\_\+fault\+\_\+callback\+\_\+t $\ast$ {\bfseries fault\+\_\+cbfunc}}\label{errmgr_8h_ad4a7df800cd01d4701da032a462636aa}

\item 
\hypertarget{errmgr_8h_a298456f5b1c23b6c92232880de3d86ba}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \\*
\hyperlink{structorte__errmgr__base__module__2__3__0__t}{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+t} {\bfseries orte\+\_\+errmgr}}\label{errmgr_8h_a298456f5b1c23b6c92232880de3d86ba}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The Open R\+T\+E Error and Recovery Manager (Err\+Mgr) 

This framework is the logically central clearing house for process/daemon state updates. In particular when a process fails and another process detects it, then that information is reported through this framework. This framework then (depending on the active component) decides how to handle the failure.

For example, if a process fails this may activate an automatic recovery of the process from a previous checkpoint, or initial state. Conversely, the active component could decide not to continue the job, and request that it be terminated. The error and recovery policy is determined by individual components within this framework. 

\subsection{Macro Definition Documentation}
\hypertarget{errmgr_8h_ac3d0ec02b1689491a7ed80c10c4bdd36}{\index{errmgr.\+h@{errmgr.\+h}!O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0@{O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0}}
\index{O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0@{O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+R\+T\+E\+\_\+\+E\+R\+R\+M\+G\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+3\+\_\+0\+\_\+0}}\label{errmgr_8h_ac3d0ec02b1689491a7ed80c10c4bdd36}
{\bfseries Value\+:}
\begin{DoxyCode}
MCA\_BASE\_VERSION\_2\_0\_0, \(\backslash\)
  \textcolor{stringliteral}{"errmgr"}, 3, 0, 0
\end{DoxyCode}


\subsection{Typedef Documentation}
\hypertarget{errmgr_8h_aaaeda3509a19d104f858242dc42be0c5}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+fn\+\_\+t)(int error\+\_\+code, char $\ast$fmt,...) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+funcptr\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+}}\label{errmgr_8h_aaaeda3509a19d104f858242dc42be0c5}


Alert -\/ self aborting This function is called when a process is aborting due to some internal error. 

It will finalize the process itself, and then exit -\/ it takes no other actions. The intent here is to provide a last-\/ditch exit procedure that attempts to clean up a little. \hypertarget{errmgr_8h_a1f597cae72d34d633ce27b2b9d2c3478}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$) typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+abort\+\_\+peers\+\_\+fn\+\_\+t)({\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$procs, {\bf orte\+\_\+std\+\_\+cntr\+\_\+t} num\+\_\+procs)}}\label{errmgr_8h_a1f597cae72d34d633ce27b2b9d2c3478}


Alert -\/ abort peers This function is called when a process wants to abort one or more peer processes. 

For example, M\+P\+I\+\_\+\+Abort(comm) will use this function to terminate peers in the communicator group before aborting itself. \hypertarget{errmgr_8h_aaa47044a06d21eca6263191c3e59ea30}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t)(void)}}\label{errmgr_8h_aaa47044a06d21eca6263191c3e59ea30}


Module finalization function. 


\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecifed error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_a99a41f7c1be1a5a87a4dd543dd7d2dee}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t)(int state)}}\label{errmgr_8h_a99a41f7c1be1a5a87a4dd543dd7d2dee}


Handle fault tolerance updates. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em state} & Fault tolerance state update\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecifed error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_ac6f75d923aee4ad275c673f8373bb9b1}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+init\+\_\+fn\+\_\+t)(void)}}\label{errmgr_8h_ac6f75d923aee4ad275c673f8373bb9b1}


Module initialization function. 


\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecifed error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_a3f887e4285e00c3b813a5ef51b4817d1}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+predicted\+\_\+fault\+\_\+fn\+\_\+t)({\bf opal\+\_\+list\+\_\+t} $\ast$proc\+\_\+list, {\bf opal\+\_\+list\+\_\+t} $\ast$node\+\_\+list, {\bf opal\+\_\+list\+\_\+t} $\ast$suggested\+\_\+map)}}\label{errmgr_8h_a3f887e4285e00c3b813a5ef51b4817d1}


Predicted process/node failure notification. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em proc\+\_\+list} & List of processes (or N\+U\+L\+L if none) \\
\hline
\mbox{\tt in}  & {\em node\+\_\+list} & List of nodes (or N\+U\+L\+L if none) \\
\hline
\mbox{\tt in}  & {\em suggested\+\_\+map} & List of mapping suggestions to use on recovery (or N\+U\+L\+L if none)\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecifed error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_a46fd9c9ae3096e54f7bb3c64c1a81d94}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+register\+\_\+migration\+\_\+warning\+\_\+fn\+\_\+t)(struct timeval $\ast$tv)}}\label{errmgr_8h_a46fd9c9ae3096e54f7bb3c64c1a81d94}


\hyperlink{structFunction}{Function} to perform actions that require the rest of the O\+R\+T\+E layer to be up and running. 


\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occured \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_ac16c727fb1581306da8969c558f15d24}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef orte\+\_\+errmgr\+\_\+fault\+\_\+callback\+\_\+t$\ast$($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+set\+\_\+fault\+\_\+callback\+\_\+t)(orte\+\_\+errmgr\+\_\+fault\+\_\+callback\+\_\+t $\ast$cbfunc)}}\label{errmgr_8h_ac16c727fb1581306da8969c558f15d24}


Set the callback function for faults. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cbfunc} & The callback function.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em The} & previous fault callback function. \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_a996881f7cfda4a49ea543591b5dd7d12}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+suggest\+\_\+map\+\_\+targets\+\_\+fn\+\_\+t)({\bf orte\+\_\+proc\+\_\+t} $\ast$proc, {\bf orte\+\_\+node\+\_\+t} $\ast$oldnode, {\bf opal\+\_\+list\+\_\+t} $\ast$node\+\_\+list)}}\label{errmgr_8h_a996881f7cfda4a49ea543591b5dd7d12}


Suggest a node to map a restarting process onto. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em proc} & \hyperlink{structProcess}{Process} that is being mapped \\
\hline
\mbox{\tt in}  & {\em oldnode} & Previous node where this process resided \\
\hline
 & {\em in$\vert$out\mbox{]}} & node\+\_\+list List of nodes to select from\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecifed error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{errmgr_8h_aa73ce9653478bcffa159d033a3d97b47}{\index{errmgr.\+h@{errmgr.\+h}!orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t}}
\index{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t@{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t}!errmgr.\+h@{errmgr.\+h}}
\subsubsection[{orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+errmgr\+\_\+base\+\_\+module\+\_\+update\+\_\+state\+\_\+fn\+\_\+t)({\bf orte\+\_\+jobid\+\_\+t} job, orte\+\_\+job\+\_\+state\+\_\+t jobstate, {\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$proc\+\_\+name, orte\+\_\+proc\+\_\+state\+\_\+t state, pid\+\_\+t pid, orte\+\_\+exit\+\_\+code\+\_\+t exit\+\_\+code)}}\label{errmgr_8h_aa73ce9653478bcffa159d033a3d97b47}


Alert -\/ process aborted This function is called by the P\+L\+M when a remote process aborts during execution. 

Actions taken in response to the abnormal termination of a remote application process will vary across the various errmgr components.

N\+O\+T\+E\+: Local process errors should always be reported through the error\+\_\+detected interface and N\+O\+T here.


\begin{DoxyParams}{Parameters}
{\em $\ast$name} & Pointer to the name of the proc that aborted\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Whatever action that was taken was successful \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & Appropriate error code \\
\hline
\end{DoxyRetVals}
