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
							
								
									cd1ed858d3
								
							
						
					
					
						commit
						e5e62b96ce
					
				
					 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…
	
	Add table
		Add a link
		
	
		Reference in a new issue