File tree Expand file tree Collapse file tree 2 files changed +10
-5
lines changed Expand file tree Collapse file tree 2 files changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -166,7 +166,8 @@ char const* const MtmNodeStatusMnem[] =
166166 "Connected" ,
167167 "Online" ,
168168 "Recovery" ,
169- "InMinor"
169+ "InMinor" ,
170+ "OutOfService"
170171};
171172
172173bool MtmDoReplication ;
@@ -1025,8 +1026,11 @@ void MtmHandleApplyError(void)
10251026 case ERRCODE_INDEX_CORRUPTED :
10261027 case ERRCODE_SYSTEM_ERROR :
10271028 case ERRCODE_INTERNAL_ERROR :
1028- case ERRCODE_OUT_OF_MEMORY :
1029- break ;
1029+ case ERRCODE_OUT_OF_MEMORY :
1030+ elog (WARNING , "Node is excluded from cluster because of non-recoverable error %d" , edata -> sqlerrcode );
1031+ MtmSwitchClusterMode (MTM_OUT_OF_SERVICE );
1032+ kill (PostmasterPid , SIGQUIT );
1033+ break ;
10301034 }
10311035}
10321036
Original file line number Diff line number Diff line change @@ -97,11 +97,12 @@ typedef enum
9797typedef enum
9898{
9999 MTM_INITIALIZATION , /* Initial status */
100- MTM_OFFLINE , /* Node is out of quorum */
100+ MTM_OFFLINE , /* Node is excluded from cluster */
101101 MTM_CONNECTED , /* Arbiter is established connections with other nodes */
102102 MTM_ONLINE , /* Ready to receive client's queries */
103103 MTM_RECOVERY , /* Node is in recovery process */
104- MTM_IN_MINORITY /* Node is out of quorum */
104+ MTM_IN_MINORITY , /* Node is out of quorum */
105+ MTM_OUT_OF_SERVICE /* Node is not avaiable to to critical, non-recoverable error */
105106} MtmNodeStatus ;
106107
107108typedef enum
You can’t perform that action at this time.
0 commit comments