Fix race in host sandbox creation
Since we share the host sandbox with many containers we need to serialize creation of the sandbox. Otherwise container starts may see the namespace path in inconsistent state. Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
This commit is contained in:
parent
abeb8f8a85
commit
6c23d4073f
|
@ -507,13 +507,14 @@ func (c *controller) NewSandbox(containerID string, options ...SandboxOption) (S
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.Lock()
|
||||||
if sb.osSbox == nil && !sb.config.useExternalKey {
|
if sb.osSbox == nil && !sb.config.useExternalKey {
|
||||||
if sb.osSbox, err = osl.NewSandbox(sb.Key(), !sb.config.useDefaultSandBox); err != nil {
|
if sb.osSbox, err = osl.NewSandbox(sb.Key(), !sb.config.useDefaultSandBox); err != nil {
|
||||||
|
c.Unlock()
|
||||||
return nil, fmt.Errorf("failed to create new osl sandbox: %v", err)
|
return nil, fmt.Errorf("failed to create new osl sandbox: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Lock()
|
|
||||||
c.sandboxes[sb.id] = sb
|
c.sandboxes[sb.id] = sb
|
||||||
c.Unlock()
|
c.Unlock()
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
Loading…
Reference in New Issue