mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #29893 from cpuguy83/fix_race_in_plugin_activation
Fix race accessing plugin storage map
This commit is contained in:
commit
2e3a621523
1 changed files with 8 additions and 1 deletions
|
@ -221,6 +221,10 @@ func loadWithRetry(name string, retry bool) (*Plugin, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
storage.Lock()
|
storage.Lock()
|
||||||
|
if pl, exists := storage.plugins[name]; exists {
|
||||||
|
storage.Unlock()
|
||||||
|
return pl, pl.activate()
|
||||||
|
}
|
||||||
storage.plugins[name] = pl
|
storage.plugins[name] = pl
|
||||||
storage.Unlock()
|
storage.Unlock()
|
||||||
|
|
||||||
|
@ -298,7 +302,10 @@ func GetAll(imp string) ([]*Plugin, error) {
|
||||||
chPl := make(chan *plLoad, len(pluginNames))
|
chPl := make(chan *plLoad, len(pluginNames))
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
for _, name := range pluginNames {
|
for _, name := range pluginNames {
|
||||||
if pl, ok := storage.plugins[name]; ok {
|
storage.Lock()
|
||||||
|
pl, ok := storage.plugins[name]
|
||||||
|
storage.Unlock()
|
||||||
|
if ok {
|
||||||
chPl <- &plLoad{pl, nil}
|
chPl <- &plLoad{pl, nil}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue