mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #2180 from ctelfer/fix-overlay-deadlock-regression
Fix spurious deadlock in overlay driver
This commit is contained in:
commit
5f23795eef
1 changed files with 10 additions and 2 deletions
|
@ -244,7 +244,15 @@ func (d *driver) DeleteNetwork(nid string) error {
|
|||
}
|
||||
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
// Only perform a peer flush operation (if required) AFTER unlocking
|
||||
// the driver lock to avoid deadlocking w/ the peerDB.
|
||||
var doPeerFlush bool
|
||||
defer func() {
|
||||
d.Unlock()
|
||||
if doPeerFlush {
|
||||
d.peerFlush(nid)
|
||||
}
|
||||
}()
|
||||
|
||||
// This is similar to d.network(), but we need to keep holding the lock
|
||||
// until we are done removing this network.
|
||||
|
@ -270,7 +278,7 @@ func (d *driver) DeleteNetwork(nid string) error {
|
|||
}
|
||||
}
|
||||
// flush the peerDB entries
|
||||
d.peerFlush(nid)
|
||||
doPeerFlush = true
|
||||
delete(d.networks, nid)
|
||||
|
||||
vnis, err := n.releaseVxlanID()
|
||||
|
|
Loading…
Add table
Reference in a new issue