Sfoglia il codice sorgente

allocateNetwork: fix network sandbox not cleaned up on failure

The defer function was checking for the local `err` variable, not
on the error that was returned by the function. As a result, the
sandbox would never be cleaned up for containers that used "none"
networking, and a failiure occured during setup.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 5 anni fa
parent
commit
b98b8df886
1 ha cambiato i file con 2 aggiunte e 2 eliminazioni
  1. 2 2
      daemon/container_operations.go

+ 2 - 2
daemon/container_operations.go

@@ -526,7 +526,7 @@ func (daemon *Daemon) updateContainerNetworkSettings(container *container.Contai
 	}
 	}
 }
 }
 
 
-func (daemon *Daemon) allocateNetwork(container *container.Container) error {
+func (daemon *Daemon) allocateNetwork(container *container.Container) (retErr error) {
 	start := time.Now()
 	start := time.Now()
 	controller := daemon.netController
 	controller := daemon.netController
 
 
@@ -594,7 +594,7 @@ func (daemon *Daemon) allocateNetwork(container *container.Container) error {
 			}
 			}
 			updateSandboxNetworkSettings(container, sb)
 			updateSandboxNetworkSettings(container, sb)
 			defer func() {
 			defer func() {
-				if err != nil {
+				if retErr != nil {
 					sb.Delete()
 					sb.Delete()
 				}
 				}
 			}()
 			}()