From e9f4b5ab7e21629cc49c8a5cfb1e9ea85ceada6c Mon Sep 17 00:00:00 2001 From: chihe Date: Fri, 14 Jun 2024 18:44:19 +0800 Subject: [PATCH] fix(master): remove the status of DecommissionNeedManualFix Signed-off-by: chihe --- master/data_node.go | 6 +----- master/data_partition.go | 11 ----------- master/disk_manager.go | 7 +------ proto/admin_proto.go | 1 + 4 files changed, 3 insertions(+), 22 deletions(-) diff --git a/master/data_node.go b/master/data_node.go index cdffb8ae6..a04f7394b 100644 --- a/master/data_node.go +++ b/master/data_node.go @@ -405,10 +405,6 @@ func (dataNode *DataNode) updateDecommissionStatus(c *Cluster, debug bool) (uint failedNum++ failedPartitionIds = append(failedPartitionIds, dp.PartitionID) } - if dp.GetDecommissionStatus() == DecommissionNeedManualFix { - failedNum++ - failedPartitionIds = append(failedPartitionIds, dp.PartitionID) - } if dp.GetDecommissionStatus() == DecommissionRunning { runningNum++ runningPartitionIds = append(runningPartitionIds, dp.PartitionID) @@ -473,7 +469,7 @@ func (dataNode *DataNode) GetDecommissionFailedDPByTerm(c *Cluster) []proto.Fail partitions := dataNode.GetLatestDecommissionDataPartition(c) log.LogDebugf("action[GetDecommissionDataNodeFailedDP] partitions len %v", len(partitions)) for _, dp := range partitions { - if dp.IsRollbackFailed() || dp.GetDecommissionStatus() == DecommissionNeedManualFix { + if dp.IsRollbackFailed() { failedDps = append(failedDps, proto.FailedDpInfo{PartitionID: dp.PartitionID, ErrMsg: dp.DecommissionErrorMessage}) log.LogWarnf("action[GetDecommissionDataNodeFailedDP] dp[%v] failed", dp.PartitionID) } diff --git a/master/data_partition.go b/master/data_partition.go index 7c186efa2..b9954ea10 100644 --- a/master/data_partition.go +++ b/master/data_partition.go @@ -978,8 +978,6 @@ func GetDecommissionStatusMessage(status uint32) string { return "Success" case DecommissionFail: return "Failed" - case DecommissionNeedManualFix: - return "DecommissionNeedManualFix" case DecommissionPrepare: return "DecommissionPrepare" default: @@ -1050,9 +1048,6 @@ func (partition *DataPartition) MarkDecommissionStatus(srcAddr, dstAddr, srcDisk if partition.IsDiscard { goto directly } - if partition.needManualFix() { - return proto.ErrAllReplicaUnavailable - } // TODO-chi:can delete this block // 1 or 2 replica can always add new replica if retrying decommission // for 3 replica, @@ -1081,7 +1076,6 @@ func (partition *DataPartition) MarkDecommissionStatus(srcAddr, dstAddr, srcDisk if partition.getReplicaDiskErrorNum() == partition.ReplicaNum { log.LogWarnf("action[MarkDecommissionStatus] dp[%v] all replica is unavaliable, cannot handle in auto decommission mode", partition.PartitionID) - partition.SetDecommissionStatus(DecommissionNeedManualFix) partition.DecommissionErrorMessage = "all replica is unavailable, cannot handle in auto decommission mode" return proto.ErrAllReplicaUnavailable } @@ -1121,7 +1115,6 @@ func (partition *DataPartition) MarkDecommissionStatus(srcAddr, dstAddr, srcDisk if partition.getReplicaDiskErrorNum() == partition.ReplicaNum { log.LogWarnf("action[MarkDecommissionStatus] dp[%v] all replica is unavaliable, cannot handle in manual decommission mode", partition.PartitionID) - partition.SetDecommissionStatus(DecommissionNeedManualFix) partition.DecommissionErrorMessage = "all replica is unavailable, cannot handle in manual decommission mode" return proto.ErrAllReplicaUnavailable } @@ -1972,10 +1965,6 @@ func (partition *DataPartition) getDiskErrorReplica() *DataReplica { return nil } -func (partition *DataPartition) needManualFix() bool { - return partition.GetDecommissionStatus() == DecommissionNeedManualFix -} - func (partition *DataPartition) checkReplicaMeta(c *Cluster) (err error) { var auditMsg string diff --git a/master/disk_manager.go b/master/disk_manager.go index 33eebd048..08a08f079 100644 --- a/master/disk_manager.go +++ b/master/disk_manager.go @@ -351,11 +351,6 @@ func (dd *DecommissionDisk) updateDecommissionStatus(c *Cluster, debug bool) (ui failedPartitionIds = append(failedPartitionIds, dp.PartitionID) } - if dp.GetDecommissionStatus() == DecommissionNeedManualFix { - failedNum++ - failedPartitionIds = append(failedPartitionIds, dp.PartitionID) - } - if dp.GetDecommissionStatus() == DecommissionRunning { runningNum++ runningPartitionIds = append(runningPartitionIds, dp.PartitionID) @@ -427,7 +422,7 @@ func (dd *DecommissionDisk) GetDecommissionFailedDPByTerm(c *Cluster) []proto.Fa var failedDps []proto.FailedDpInfo log.LogDebugf("action[GetDecommissionFailedDPByTerm] partitions len %v", len(partitions)) for _, dp := range partitions { - if dp.IsRollbackFailed() || dp.GetDecommissionStatus() == DecommissionNeedManualFix { + if dp.IsRollbackFailed() { failedDps = append(failedDps, proto.FailedDpInfo{PartitionID: dp.PartitionID, ErrMsg: dp.DecommissionErrorMessage}) log.LogWarnf("action[GetDecommissionFailedDPByTerm] dp[%v] failed", dp.PartitionID) } diff --git a/proto/admin_proto.go b/proto/admin_proto.go index 0a481635b..acd340455 100644 --- a/proto/admin_proto.go +++ b/proto/admin_proto.go @@ -47,6 +47,7 @@ const ( AdminQueryDataPartitionDecommissionStatus = "/dataPartition/queryDecommissionStatus" AdminCheckReplicaMeta = "/dataPartition/checkReplicaMeta" AdminRecoverReplicaMeta = "/dataPartition/recoverReplicaMeta" + AdminRecoverDiskErrorReplica = "/dataPartition/recoverDiskErrorReplica" AdminDeleteDataReplica = "/dataReplica/delete" AdminAddDataReplica = "/dataReplica/add" AdminDeleteVol = "/vol/delete"