From b8742d469a1df5b5b5b1fa4cccd504f4e901c2d1 Mon Sep 17 00:00:00 2001 From: chihe Date: Wed, 11 Sep 2024 10:03:53 +0800 Subject: [PATCH] fix(master): use lock to set dp markDecommission Signed-off-by: chihe --- datanode/partition.go | 2 +- master/data_node.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/datanode/partition.go b/datanode/partition.go index a115d3626..a5523108b 100644 --- a/datanode/partition.go +++ b/datanode/partition.go @@ -1548,7 +1548,7 @@ func (dp *DataPartition) hasNodeIDConflict(addr string, nodeID uint64) error { func (dp *DataPartition) info() string { diskPath := "" - if dp.disk == nil { + if dp.disk != nil { diskPath = dp.disk.Path } return fmt.Sprintf("id(%v)_disk(%v)_type(%v)", dp.partitionID, diskPath, dp.partitionType) diff --git a/master/data_node.go b/master/data_node.go index 2f07af57b..0c7002b5b 100644 --- a/master/data_node.go +++ b/master/data_node.go @@ -583,6 +583,8 @@ func (dataNode *DataNode) GetDecommissionFailedDP(c *Cluster) (error, []uint64) } func (dataNode *DataNode) markDecommission(targetAddr string, raftForce bool, limit int) { + dataNode.DecommissionSyncMutex.Lock() + defer dataNode.DecommissionSyncMutex.Unlock() dataNode.SetDecommissionStatus(markDecommission) dataNode.DecommissionRaftForce = raftForce dataNode.DecommissionDstAddr = targetAddr