mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix race condition in execCommandGC
`daemon.execCommandGC` The daemon object (grep execCommandGC) iterate over a map (grep execCommands.Commands) in a goroutine. Lock can't protect concurrency access in this case. Exec command storage object should return a copy of commands instead. Signed-off-by: Pei Su <sillyousu@gmail.com>
This commit is contained in:
parent
64c6593a36
commit
ac382473d9
1 changed files with 7 additions and 1 deletions
|
@ -53,7 +53,13 @@ func NewStore() *Store {
|
|||
|
||||
// Commands returns the exec configurations in the store.
|
||||
func (e *Store) Commands() map[string]*Config {
|
||||
return e.commands
|
||||
e.RLock()
|
||||
commands := make(map[string]*Config, len(e.commands))
|
||||
for id, config := range e.commands {
|
||||
commands[id] = config
|
||||
}
|
||||
e.RUnlock()
|
||||
return commands
|
||||
}
|
||||
|
||||
// Add adds a new exec configuration to the store.
|
||||
|
|
Loading…
Reference in a new issue