mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Do not hold ack channel in ack table after closing
Once the bulksync ack channel is closed remove it from the ack table right away. There is no reason to keep it in the ack table and later delete it in the ack waiter. Ack waiter anyways has reference to the channel on which it is waiting. Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
This commit is contained in:
parent
59832beb31
commit
f649d5ae61
2 changed files with 3 additions and 6 deletions
|
@ -559,10 +559,6 @@ func (nDB *NetworkDB) bulkSyncNode(networks []string, node string, unsolicited b
|
|||
case <-t.C:
|
||||
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))
|
||||
}
|
||||
t.Stop()
|
||||
|
|
|
@ -318,12 +318,13 @@ func (nDB *NetworkDB) handleBulkSync(buf []byte) {
|
|||
|
||||
// Don't respond to a bulk sync which was not unsolicited
|
||||
if !bsm.Unsolicited {
|
||||
nDB.RLock()
|
||||
nDB.Lock()
|
||||
ch, ok := nDB.bulkSyncAckTbl[bsm.NodeName]
|
||||
nDB.RUnlock()
|
||||
if ok {
|
||||
close(ch)
|
||||
delete(nDB.bulkSyncAckTbl, bsm.NodeName)
|
||||
}
|
||||
nDB.Unlock()
|
||||
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue