From 5ac33e4b0abaf7c64fd436d9b8a57e87c94f36b9 Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Wed, 7 Aug 2019 15:00:01 -0700 Subject: [PATCH] Fix race conditions in node_test --- node/node_test.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/node/node_test.go b/node/node_test.go index d7ba849cc..5af97d68d 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -54,7 +54,11 @@ func testNodeRun(t *testing.T, enableLease bool) { if enableLease { opts = append(opts, WithNodeEnableLeaseV1Beta1(leases, nil)) } - node, err := NewNodeController(testP, testNode(t), nodes, opts...) + testNode := testNode(t) + // We have to refer to testNodeCopy during the course of the test. testNode is modified by the node controller + // so it will trigger the race detector. + testNodeCopy := testNode.DeepCopy() + node, err := NewNodeController(testP, testNode, nodes, opts...) assert.NilError(t, err) chErr := make(chan error) @@ -68,11 +72,11 @@ func testNodeRun(t *testing.T, enableLease bool) { close(chErr) }() - nw := makeWatch(t, nodes, node.n.Name) + nw := makeWatch(t, nodes, testNodeCopy.Name) defer nw.Stop() nr := nw.ResultChan() - lw := makeWatch(t, leases, node.n.Name) + lw := makeWatch(t, leases, testNodeCopy.Name) defer lw.Stop() lr := lw.ResultChan() @@ -105,7 +109,8 @@ func testNodeRun(t *testing.T, enableLease bool) { leaseUpdates++ assert.Assert(t, cmp.Equal(l.Spec.HolderIdentity != nil, true)) - assert.Check(t, cmp.Equal(*l.Spec.HolderIdentity, node.n.Name)) + assert.NilError(t, err) + assert.Check(t, cmp.Equal(*l.Spec.HolderIdentity, testNodeCopy.Name)) if lBefore != nil { assert.Check(t, before(lBefore.Spec.RenewTime.Time, l.Spec.RenewTime.Time)) } @@ -125,14 +130,15 @@ func testNodeRun(t *testing.T, enableLease bool) { } // trigger an async node status update - n := node.n.DeepCopy() + n, err := nodes.Get(testNode.Name, metav1.GetOptions{}) + assert.NilError(t, err) newCondition := corev1.NodeCondition{ Type: corev1.NodeConditionType("UPDATED"), LastTransitionTime: metav1.Now().Rfc3339Copy(), } n.Status.Conditions = append(n.Status.Conditions, newCondition) - nw = makeWatch(t, nodes, node.n.Name) + nw = makeWatch(t, nodes, testNodeCopy.Name) defer nw.Stop() nr = nw.ResultChan()