aboutsummaryrefslogtreecommitdiffstats
path: root/integration_test/consensus_test.go
diff options
context:
space:
mode:
authorMission Liao <mission.liao@dexon.org>2019-01-11 12:58:30 +0800
committerGitHub <noreply@github.com>2019-01-11 12:58:30 +0800
commit809e8def862fdfa792061a448f952747f1af4d3c (patch)
treebd038971e65a09bc9bb399f03a37b194ce67ae3c /integration_test/consensus_test.go
parentfa25817354d5b7d40f5911004232392acfe7fe53 (diff)
downloaddexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.tar
dexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.tar.gz
dexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.tar.bz2
dexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.tar.lz
dexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.tar.xz
dexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.tar.zst
dexon-consensus-809e8def862fdfa792061a448f952747f1af4d3c.zip
syncer: fix issues when switching to core.Consensus (#418)
- when confirmed blocks passed to core.Consensus aren't continuous in position in some chain, the pulling would skip those missing blocks. - fix: when some block is missing, avoid adding it and all blocks after it to core.Consensus. - we need to avoid the receive channel of network module full. - fix: during switching to core.Consensus, we need to launch a dummy receiver to receive from receive channel of network module. - fix: between the period during core.Consensus created and before running, a dummy receiver is also required to receive from receive channel of network module.
Diffstat (limited to 'integration_test/consensus_test.go')
-rw-r--r--integration_test/consensus_test.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/integration_test/consensus_test.go b/integration_test/consensus_test.go
index 99de7c9..fc6bb47 100644
--- a/integration_test/consensus_test.go
+++ b/integration_test/consensus_test.go
@@ -367,8 +367,8 @@ func (s *ConsensusTestSuite) TestSync() {
}
// Clean syncNode's network receive channel, or it might exceed the limit
// and block other go routines.
- dummyReceiverCtxCancel := test.LaunchDummyReceiver(
- context.Background(), syncNode.network)
+ dummyReceiverCtxCancel, dummyFinished := utils.LaunchDummyReceiver(
+ context.Background(), syncNode.network.ReceiveChan(), nil)
ReachAlive:
for {
// Check if any error happened or sleep for a period of time.
@@ -390,6 +390,7 @@ ReachAlive:
}
}
dummyReceiverCtxCancel()
+ <-dummyFinished
break
}
// Initiate Syncer.
@@ -456,7 +457,8 @@ ReachAlive:
stoppedNode.con.Stop()
stoppedNode.con = nil
fmt.Println("one node stopped", stoppedNode.ID)
- test.LaunchDummyReceiver(runnerCtx, stoppedNode.network)
+ utils.LaunchDummyReceiver(
+ runnerCtx, stoppedNode.network.ReceiveChan(), nil)
continue
}
if pos.Round < untilRound {