mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #1753 from sanimej/bulksync
retry once on a bulk sync failure
This commit is contained in:
commit
57b1bb6069
1 changed files with 10 additions and 5 deletions
|
@ -480,26 +480,31 @@ func (nDB *NetworkDB) bulkSyncTables() {
|
||||||
|
|
||||||
func (nDB *NetworkDB) bulkSync(nodes []string, all bool) ([]string, error) {
|
func (nDB *NetworkDB) bulkSync(nodes []string, all bool) ([]string, error) {
|
||||||
if !all {
|
if !all {
|
||||||
// If not all, then just pick one.
|
// Get 2 random nodes. 2nd node will be tried if the bulk sync to
|
||||||
nodes = nDB.mRandomNodes(1, nodes)
|
// 1st node fails.
|
||||||
|
nodes = nDB.mRandomNodes(2, nodes)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(nodes) == 0 {
|
if len(nodes) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Debugf("%s: Initiating bulk sync with nodes %v", nDB.config.NodeName, nodes)
|
|
||||||
var err error
|
var err error
|
||||||
var networks []string
|
var networks []string
|
||||||
for _, node := range nodes {
|
for _, node := range nodes {
|
||||||
if node == nDB.config.NodeName {
|
if node == nDB.config.NodeName {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
logrus.Debugf("%s: Initiating bulk sync with node %v", nDB.config.NodeName, node)
|
||||||
networks = nDB.findCommonNetworks(node)
|
networks = nDB.findCommonNetworks(node)
|
||||||
err = nDB.bulkSyncNode(networks, node, true)
|
err = nDB.bulkSyncNode(networks, node, true)
|
||||||
|
// if its periodic bulksync stop after the first successful sync
|
||||||
|
if !all && err == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("bulk sync failed on node %s: %v", node, err)
|
err = fmt.Errorf("bulk sync to node %s failed: %v", node, err)
|
||||||
|
logrus.Warn(err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue