浏览代码

Merge pull request #1243 from mrjana/networkdb

Do not wait on ack in bulksync response
Alessandro Boch 9 年之前
父节点
当前提交
bd39ba82a4
共有 1 个文件被更改,包括 13 次插入10 次删除
  1. 13 10
      libnetwork/networkdb/cluster.go

+ 13 - 10
libnetwork/networkdb/cluster.go

@@ -434,16 +434,19 @@ func (nDB *NetworkDB) bulkSyncNode(networks []string, node string, unsolicited b
 		return fmt.Errorf("failed to send a TCP message during bulk sync: %v", err)
 		return fmt.Errorf("failed to send a TCP message during bulk sync: %v", err)
 	}
 	}
 
 
-	startTime := time.Now()
-	select {
-	case <-time.After(30 * time.Second):
-		logrus.Errorf("Bulk sync to node %s timed out", node)
-	case <-ch:
-		nDB.Lock()
-		delete(nDB.bulkSyncAckTbl, node)
-		nDB.Unlock()
-
-		logrus.Debugf("%s: Bulk sync to node %s took %s", nDB.config.NodeName, node, time.Now().Sub(startTime))
+	// Wait on a response only if it is unsolicited.
+	if unsolicited {
+		startTime := time.Now()
+		select {
+		case <-time.After(30 * time.Second):
+			logrus.Errorf("Bulk sync to node %s timed out", node)
+		case <-ch:
+			nDB.Lock()
+			delete(nDB.bulkSyncAckTbl, node)
+			nDB.Unlock()
+
+			logrus.Debugf("%s: Bulk sync to node %s took %s", nDB.config.NodeName, node, time.Now().Sub(startTime))
+		}
 	}
 	}
 
 
 	return nil
 	return nil