【bugfix】 修改主备在按需回放第二阶段结束时,并发修改控制文件reform页,导致控制文件卡在in-ondemand-redo阶段的问题
This commit is contained in:
@ -451,7 +451,14 @@ static int SetPrimaryIdOnStandby(int primary_id)
|
||||
SS_PERFORMING_SWITCHOVER ? "switchover" : "reform", SS_MY_INST_ID, primary_id, ntries)));
|
||||
return DMS_SUCCESS;
|
||||
} else {
|
||||
SSSavePrimaryInstId(primary_id);
|
||||
if (dms_reform_failed()) {
|
||||
ereport(ERROR,
|
||||
(errmodule(MOD_DMS), errmsg("[SS %s] Failed to confirm new primary: %d,"
|
||||
" control file indicates primary is %d; dms reform failed.",
|
||||
SS_PERFORMING_SWITCHOVER ? "switchover" : "reform", (int)primary_id,
|
||||
g_instance.dms_cxt.SSReformerControl.primaryInstId)));
|
||||
return DMS_ERROR;
|
||||
}
|
||||
if (ntries >= WAIT_REFORM_CTRL_REFRESH_TRIES) {
|
||||
ereport(ERROR,
|
||||
(errmodule(MOD_DMS), errmsg("[SS %s] Failed to confirm new primary: %d,"
|
||||
|
@ -255,6 +255,7 @@ void SSDoradoGetXlogPathList()
|
||||
|
||||
void SSUpdateReformerCtrl()
|
||||
{
|
||||
Assert(SS_PRIMARY_MODE);
|
||||
int fd = -1;
|
||||
int len;
|
||||
errno_t err = EOK;
|
||||
|
Reference in New Issue
Block a user