diff --git a/libnetwork/sandbox.go b/libnetwork/sandbox.go index 1ca1271cc7..0329e4b7ee 100644 --- a/libnetwork/sandbox.go +++ b/libnetwork/sandbox.go @@ -427,7 +427,13 @@ func (sb *sandbox) ResolveIP(ip string) string { } func (sb *sandbox) ExecFunc(f func()) error { - return sb.osSbox.InvokeFunc(f) + sb.Lock() + osSbox := sb.osSbox + sb.Unlock() + if osSbox != nil { + return osSbox.InvokeFunc(f) + } + return fmt.Errorf("osl sandbox unavailable in ExecFunc for %v", sb.ContainerID()) } func (sb *sandbox) ResolveService(name string) ([]*net.SRV, []net.IP) {