From 3fc105535a9ac49d8fc81b1fb8ae497322f256cf Mon Sep 17 00:00:00 2001 From: congzhou2603 Date: Mon, 18 Dec 2023 20:12:13 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90bugfix=E3=80=91=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BB=E5=A4=87=E5=9C=A8=E6=8C=89=E9=9C=80=E5=9B=9E=E6=94=BE?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E9=98=B6=E6=AE=B5=E7=BB=93=E6=9D=9F=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=8F=91=E4=BF=AE=E6=94=B9=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E6=96=87=E4=BB=B6reform=E9=A1=B5=EF=BC=8C=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=96=87=E4=BB=B6=E5=8D=A1=E5=9C=A8in-ondema?= =?UTF-8?q?nd-redo=E9=98=B6=E6=AE=B5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/ddes/adapter/ss_dms_callback.cpp | 9 ++++++++- src/gausskernel/ddes/adapter/ss_reform_common.cpp | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp index 37c18ad59..3ef7882a0 100644 --- a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp @@ -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," diff --git a/src/gausskernel/ddes/adapter/ss_reform_common.cpp b/src/gausskernel/ddes/adapter/ss_reform_common.cpp index 799431440..97f6aa286 100644 --- a/src/gausskernel/ddes/adapter/ss_reform_common.cpp +++ b/src/gausskernel/ddes/adapter/ss_reform_common.cpp @@ -255,6 +255,7 @@ void SSDoradoGetXlogPathList() void SSUpdateReformerCtrl() { + Assert(SS_PRIMARY_MODE); int fd = -1; int len; errno_t err = EOK;