--- ./source/private_module/cls/cls_vote.c	2018-04-29 10:47:00.000000000 +0000
+++ ./source/private_module/cls/cls_vote.c.hotpatch	2021-11-22 10:16:18.000000000 +0000
@@ -6369,7 +6369,7 @@
 
     return;
 }
-
+bool isNeedIgnoreMasterRspJoin(XNET_MSG_S *requestMsg);
 /**************************************************************************
      : ڵյȺӦļ뼯ȺϢ
  :  
@@ -6400,7 +6400,7 @@
     clsInfo = XNET_GET_IBD_BY_MSG(requestMsg);
     msgLen = XNET_GET_IBD_LEN(requestMsg);
     srcNid = XNET_GET_SRC_NID(requestMsg);
-    
+    if (isNeedIgnoreMasterRspJoin(requestMsg)) { return RETURN_OK; } //safeģʽͬ
     if(SYS_CLUSTER_MODE_SAFE == clsInfo->clsMode && (0 == g_setFailLogCount))
     {
         g_setFailLogCount++;
@@ -7311,3 +7311,62 @@
     return;
 }
 
+/**************************************************************************
+     : ڵյȺӦļ뼯ȺϢ-prs
+ :
+            XNET_MSG_S *requestMsg  Ϣ
+ :  
+ ֵ  :
+            RETURN_OK   Ϣɹ
+     :  
+**************************************************************************/
+static void rsponseJoinedReqMsgRsp(XNET_MSG_S *requestMsg, int32_t result)
+{
+    int32_t retVal = RETURN_ERROR;
+    
+    /* ӦϢ */
+    retVal = SYS_SEND_XNET_RSP(XNET_MSG_MASTER_RSP_TO_JOINED_NODE_RSP,
+                               XNET_GET_SRC_NID(requestMsg),
+                               result,
+                               XNET_GET_TRANSNO(requestMsg),
+                               NULL, 0, NULL);
+    if(RETURN_OK != retVal)
+    {
+        /*ʧܲ*/
+        DBG_LogError(LOG_ID_1637, "VOTE: Send xnet rsp msg(name %s) to node(id %u) failed.",
+                     getXnetOpCodeName(XNET_GET_OPCODE(requestMsg)),
+                     XNET_GET_SRC_NID(requestMsg));
+    }
+
+    return;
+}
+
+bool isNeedIgnoreMasterRspJoin(XNET_MSG_S *requestMsg)
+{
+    uint16_t localGroupId = 0;
+    uint16_t srcGroupId = 0;
+    bool isNeedIgnore = B_FALSE;
+    nid_t srcNid = INVALID_NID;
+    NODE_JOIN_CLS_INFO_S  *clsInfo = NULL;
+
+    clsInfo = XNET_GET_IBD_BY_MSG(requestMsg);
+    srcNid = XNET_GET_SRC_NID(requestMsg);
+    getNodeGroupIdInfo(getLocalNid(), &localGroupId);
+    getNodeGroupIdInfo(srcNid, &srcGroupId);
+
+    /*DTS2020010402028 safeģʽͬ*/
+    isNeedIgnore = ((SYS_CLUSTER_MODE_SAFE == clsInfo->clsMode) &&
+                   (localGroupId != srcGroupId));
+    if (isNeedIgnore)
+    {
+        SYSCTRL_PRINT_LIMIT(60 * HZ, 1, DBG_LOG_WARNING, DBG_LOGID_NEW, 
+                            "NODE_POWER_ON: srcGroupId(%u) is equal "
+                            "at localGroupId(%u), safe mode dont deal.",
+                            srcGroupId, localGroupId);
+        rsponseJoinedReqMsgRsp(requestMsg, RETURN_OK);
+        return B_TRUE;
+    }    
+    return B_FALSE;
+}
+
+
