diff --git a/controller/cluster.go b/controller/cluster.go index 2b975d2..eea8ff8 100644 --- a/controller/cluster.go +++ b/controller/cluster.go @@ -341,6 +341,10 @@ func (c *ClusterChecker) migrationLoop() { return case <-ticker.C: c.clusterMu.Lock() + if c.cluster == nil { + c.clusterMu.Unlock() + continue + } clonedCluster := c.cluster.Clone() c.clusterMu.Unlock() if clonedCluster == nil { diff --git a/store/cluster.go b/store/cluster.go index b345e23..d4713dd 100644 --- a/store/cluster.go +++ b/store/cluster.go @@ -78,10 +78,6 @@ func NewCluster(name string, nodes []string, replicas int) (*Cluster, error) { } func (cluster *Cluster) Clone() *Cluster { - if cluster == nil { - return nil - } - clone := &Cluster{ Name: cluster.Name, Shards: make([]*Shard, 0), diff --git a/store/cluster_test.go b/store/cluster_test.go index 889bf03..cb62545 100644 --- a/store/cluster_test.go +++ b/store/cluster_test.go @@ -30,10 +30,6 @@ import ( ) func TestCluster_Clone(t *testing.T) { - var cluster *Cluster - emptyCluster := cluster.Clone() - require.Nil(t, emptyCluster) - cluster, err := NewCluster("test", []string{"node1", "node2", "node3"}, 1) require.NoError(t, err)