فهرست منبع

etcdserver: get rid of unreliable WaitSchedule

In this case, we know we are waiting for an action happened on
storage. We can do a busy wait instead of calling waitSchedule.

The test previously failed on CI with no observed actions.
Xiang Li 10 سال پیش
والد
کامیت
3ec3ffbef0
1فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 9 2
      etcdserver/server_test.go

+ 9 - 2
etcdserver/server_test.go

@@ -849,8 +849,15 @@ func TestRecvSnapshot(t *testing.T) {
 
 	s.start()
 	n.readyc <- raft.Ready{Snapshot: raftpb.Snapshot{Metadata: raftpb.SnapshotMetadata{Index: 1}}}
-	// make goroutines move forward to receive snapshot
-	testutil.WaitSchedule()
+
+	// wait for actions happened on the storage
+	for {
+		if len(p.Action()) != 0 {
+			break
+		}
+		time.Sleep(10 * time.Millisecond)
+	}
+
 	s.Stop()
 
 	wactions := []testutil.Action{{Name: "Recovery"}}