diff --git a/components/engine/daemon/container.go b/components/engine/daemon/container.go index a477f19f22..a972f8b712 100644 --- a/components/engine/daemon/container.go +++ b/components/engine/daemon/container.go @@ -527,7 +527,9 @@ func (container *Container) ReleaseNetwork() { } eng := container.daemon.eng - eng.Job("release_interface", container.ID).Run() + job := eng.Job("release_interface", container.ID) + job.SetenvBool("overrideShutdown", true) + job.Run() container.NetworkSettings = &NetworkSettings{} } diff --git a/components/engine/engine/job.go b/components/engine/engine/job.go index ecd9441ff5..6c11b13446 100644 --- a/components/engine/engine/job.go +++ b/components/engine/engine/job.go @@ -48,7 +48,7 @@ const ( // If the job returns a failure status, an error is returned // which includes the status. func (job *Job) Run() error { - if job.Eng.IsShutdown() { + if job.Eng.IsShutdown() && !job.GetenvBool("overrideShutdown") { return fmt.Errorf("engine is shutdown") } // FIXME: this is a temporary workaround to avoid Engine.Shutdown