diff --git a/cluster.go b/cluster.go index dcb9e0ecc..8b56edaaf 100644 --- a/cluster.go +++ b/cluster.go @@ -941,7 +941,7 @@ func (c *Cluster) handleNodeAction(nodeAction nodeAction) error { if err := c.setStateAndBroadcast(ClusterStateNormal); err != nil { c.logger().Printf("setStateAndBroadcast error: err=%s", err) } - return c.setStateAndBroadcast(ClusterStateNormal) + return err } // j.Run() runs in a goroutine because in the case where the diff --git a/server/cluster_test.go b/server/cluster_test.go index 9c518aecb..299415bc3 100644 --- a/server/cluster_test.go +++ b/server/cluster_test.go @@ -556,6 +556,8 @@ func TestClusterResize_RemoveNode(t *testing.T) { t.Fatal(err) } + // This is an attempt to ensure there is data on both nodes, but is not guaranteed. + // TODO: Deterministic node IDs would ensure consistent results setBits := "" for i := 0; i < 20; i++ { setBits += fmt.Sprintf("SetBit(rowID=1, frame=\"f\", columnID=%d) ", i*pilosa.SliceWidth)