mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Make sure to notify watchers on node going away
When a node goes away we purge all the table entries that we learned from that node but we don't notify the watchers about it. Made sure we notify the watchers when this happens. Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
This commit is contained in:
parent
7933b04775
commit
3859a7e394
1 changed files with 9 additions and 2 deletions
|
@ -193,7 +193,10 @@ func (nDB *NetworkDB) reapNetworks() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (nDB *NetworkDB) reapTableEntries() {
|
func (nDB *NetworkDB) reapTableEntries() {
|
||||||
var paths []string
|
var (
|
||||||
|
paths []string
|
||||||
|
entries []*entry
|
||||||
|
)
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
||||||
|
@ -209,12 +212,14 @@ func (nDB *NetworkDB) reapTableEntries() {
|
||||||
}
|
}
|
||||||
|
|
||||||
paths = append(paths, path)
|
paths = append(paths, path)
|
||||||
|
entries = append(entries, entry)
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
nDB.RUnlock()
|
nDB.RUnlock()
|
||||||
|
|
||||||
nDB.Lock()
|
nDB.Lock()
|
||||||
for _, path := range paths {
|
for i, path := range paths {
|
||||||
|
entry := entries[i]
|
||||||
params := strings.Split(path[1:], "/")
|
params := strings.Split(path[1:], "/")
|
||||||
tname := params[0]
|
tname := params[0]
|
||||||
nid := params[1]
|
nid := params[1]
|
||||||
|
@ -227,6 +232,8 @@ func (nDB *NetworkDB) reapTableEntries() {
|
||||||
if _, ok := nDB.indexes[byNetwork].Delete(fmt.Sprintf("/%s/%s/%s", nid, tname, key)); !ok {
|
if _, ok := nDB.indexes[byNetwork].Delete(fmt.Sprintf("/%s/%s/%s", nid, tname, key)); !ok {
|
||||||
logrus.Errorf("Could not delete entry in network %s with table name %s and key %s as it does not exist", nid, tname, key)
|
logrus.Errorf("Could not delete entry in network %s with table name %s and key %s as it does not exist", nid, tname, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nDB.broadcaster.Write(makeEvent(opDelete, tname, nid, key, entry.value))
|
||||||
}
|
}
|
||||||
nDB.Unlock()
|
nDB.Unlock()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue