Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

Commit 344dbf9

Browse files
authored
Merge pull request #162 from cpuguy83/lock_container_on_network_connect
[17.06] backport fix for lock container while connecting to a new network
2 parents aa4e506 + 271aa92 commit 344dbf9

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

components/engine/daemon/container_operations.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -980,6 +980,9 @@ func (daemon *Daemon) ConnectToNetwork(container *container.Container, idOrName
980980
if endpointConfig == nil {
981981
endpointConfig = &networktypes.EndpointSettings{}
982982
}
983+
container.Lock()
984+
defer container.Unlock()
985+
983986
if !container.Running {
984987
if container.RemovalInProgress || container.Dead {
985988
return errRemovalContainer(container.ID)
@@ -1002,7 +1005,7 @@ func (daemon *Daemon) ConnectToNetwork(container *container.Container, idOrName
10021005
return err
10031006
}
10041007
}
1005-
if err := container.ToDiskLocking(); err != nil {
1008+
if err := container.ToDisk(); err != nil {
10061009
return fmt.Errorf("Error saving container to disk: %v", err)
10071010
}
10081011
return nil
@@ -1011,6 +1014,9 @@ func (daemon *Daemon) ConnectToNetwork(container *container.Container, idOrName
10111014
// DisconnectFromNetwork disconnects container from network n.
10121015
func (daemon *Daemon) DisconnectFromNetwork(container *container.Container, networkName string, force bool) error {
10131016
n, err := daemon.FindNetwork(networkName)
1017+
container.Lock()
1018+
defer container.Unlock()
1019+
10141020
if !container.Running || (err != nil && force) {
10151021
if container.RemovalInProgress || container.Dead {
10161022
return errRemovalContainer(container.ID)
@@ -1038,7 +1044,7 @@ func (daemon *Daemon) DisconnectFromNetwork(container *container.Container, netw
10381044
return err
10391045
}
10401046

1041-
if err := container.ToDiskLocking(); err != nil {
1047+
if err := container.ToDisk(); err != nil {
10421048
return fmt.Errorf("Error saving container to disk: %v", err)
10431049
}
10441050

0 commit comments

Comments
 (0)