mirror of
https://github.com/moby/moby.git
synced 2026-08-05 07:30:57 +00:00
[Bug]Fix race between sandbox.delete() and SetKey()
When sandbox is deleting, another SetKey routine could be also in progress as there's no lock to protect it, when this happens, there could be a scene that one sandbox is removed, but it's osSbox file "/var/run/docker/netns/xxxx" left on system and will never be cleaned. So add a inDelete check for SetKey() to eliminate the race. Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
This commit is contained in:
@@ -626,6 +626,10 @@ func (sb *sandbox) SetKey(basePath string) error {
|
||||
}
|
||||
|
||||
sb.Lock()
|
||||
if sb.inDelete {
|
||||
sb.Unlock()
|
||||
return types.ForbiddenErrorf("failed to SetKey: sandbox %q delete in progress", sb.id)
|
||||
}
|
||||
oldosSbox := sb.osSbox
|
||||
sb.Unlock()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user