File tree 2 files changed +10
-5
lines changed
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[] =
166
166
"Connected" ,
167
167
"Online" ,
168
168
"Recovery" ,
169
- "InMinor"
169
+ "InMinor" ,
170
+ "OutOfService"
170
171
};
171
172
172
173
bool MtmDoReplication ;
@@ -1025,8 +1026,11 @@ void MtmHandleApplyError(void)
1025
1026
case ERRCODE_INDEX_CORRUPTED :
1026
1027
case ERRCODE_SYSTEM_ERROR :
1027
1028
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 ;
1030
1034
}
1031
1035
}
1032
1036
Original file line number Diff line number Diff line change @@ -97,11 +97,12 @@ typedef enum
97
97
typedef enum
98
98
{
99
99
MTM_INITIALIZATION , /* Initial status */
100
- MTM_OFFLINE , /* Node is out of quorum */
100
+ MTM_OFFLINE , /* Node is excluded from cluster */
101
101
MTM_CONNECTED , /* Arbiter is established connections with other nodes */
102
102
MTM_ONLINE , /* Ready to receive client's queries */
103
103
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 */
105
106
} MtmNodeStatus ;
106
107
107
108
typedef enum
You can’t perform that action at this time.
0 commit comments