Browse Source

e2e: avoid starting nodes from the future (#6835)

pull/6845/head
Sam Kleinman 3 years ago
committed by GitHub
parent
commit
a4cc8317da
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 3 deletions
  1. +28
    -3
      test/e2e/runner/start.go

+ 28
- 3
test/e2e/runner/start.go View File

@ -25,6 +25,7 @@ func Start(testnet *e2e.Testnet) error {
} }
return false return false
}) })
sort.SliceStable(nodeQueue, func(i, j int) bool { sort.SliceStable(nodeQueue, func(i, j int) bool {
return nodeQueue[i].StartAt < nodeQueue[j].StartAt return nodeQueue[i].StartAt < nodeQueue[j].StartAt
}) })
@ -49,9 +50,15 @@ func Start(testnet *e2e.Testnet) error {
logger.Info(fmt.Sprintf("Node %v up on http://127.0.0.1:%v", node.Name, node.ProxyPort)) logger.Info(fmt.Sprintf("Node %v up on http://127.0.0.1:%v", node.Name, node.ProxyPort))
} }
networkHeight := testnet.InitialHeight
// Wait for initial height // Wait for initial height
logger.Info(fmt.Sprintf("Waiting for initial height %v...", testnet.InitialHeight))
block, blockID, err := waitForHeight(testnet, testnet.InitialHeight)
logger.Info("Waiting for initial height",
"height", networkHeight,
"nodes", len(testnet.Nodes)-len(nodeQueue),
"pending", len(nodeQueue))
block, blockID, err := waitForHeight(testnet, networkHeight)
if err != nil { if err != nil {
return err return err
} }
@ -66,8 +73,26 @@ func Start(testnet *e2e.Testnet) error {
} }
} }
// Start up remaining nodes
for _, node := range nodeQueue { for _, node := range nodeQueue {
if node.StartAt > networkHeight {
// if we're starting a node that's ahead of
// the last known height of the network, then
// we should make sure that the rest of the
// network has reached at least the height
// that this node will start at before we
// start the node.
networkHeight = node.StartAt
logger.Info("Waiting for network to advance before starting catch up node",
"node", node.Name,
"height", networkHeight)
if _, _, err := waitForHeight(testnet, networkHeight); err != nil {
return err
}
}
logger.Info(fmt.Sprintf("Starting node %v at height %v...", node.Name, node.StartAt)) logger.Info(fmt.Sprintf("Starting node %v at height %v...", node.Name, node.StartAt))
if _, _, err := waitForHeight(testnet, node.StartAt); err != nil { if _, _, err := waitForHeight(testnet, node.StartAt); err != nil {
return err return err


Loading…
Cancel
Save