Merge pull request #2687 from karalabe/downloader-fasttest-fix

eth/downloader: fix occasional fast sync critical section test fails
This commit is contained in:
Felix Lange 2016-06-13 12:55:32 +02:00 committed by GitHub
commit 73c028c40a
1 changed files with 3 additions and 1 deletions

View File

@ -1824,13 +1824,15 @@ func testFastCriticalRestarts(t *testing.T, protocol int) {
for i := 0; i < fsPivotInterval; i++ {
tester.peerMissingStates["peer"][headers[hashes[fsMinFullBlocks+i]].Root] = true
}
tester.downloader.dropPeer = func(id string) {} // We reuse the same "faulty" peer throughout the test
// Synchronise with the peer a few times and make sure they fail until the retry limit
for i := 0; i < fsCriticalTrials; i++ {
// Attempt a sync and ensure it fails properly
if err := tester.sync("peer", nil, FastSync); err == nil {
t.Fatalf("failing fast sync succeeded: %v", err)
}
time.Sleep(500 * time.Millisecond) // Make sure no in-flight requests remain
time.Sleep(100 * time.Millisecond) // Make sure no in-flight requests remain
// If it's the first failure, pivot should be locked => reenable all others to detect pivot changes
if i == 0 {