Pārlūkot izejas kodu

Fix in bridge delete endpoint

- In DeleteEndpoint(), veth removal is a best effort,
  as it could have alreayd been removed by sandbox destroy.
  Therefore if veth is not found, cleanup defer function
  should not run.

Signed-off-by: Alessandro Boch <aboch@docker.com>
Alessandro Boch 10 gadi atpakaļ
vecāks
revīzija
1bf751ef93
1 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. 3 3
      libnetwork/drivers/bridge/bridge.go

+ 3 - 3
libnetwork/drivers/bridge/bridge.go

@@ -1129,9 +1129,9 @@ func (d *driver) DeleteEndpoint(nid, eid types.UUID) error {
 	}
 
 	// Try removal of link. Discard error: link pair might have
-	// already been deleted by sandbox delete.
-	link, err := netlink.LinkByName(ep.srcName)
-	if err == nil {
+	// already been deleted by sandbox delete. Make sure defer
+	// does not see this error either.
+	if link, err := netlink.LinkByName(ep.srcName); err == nil {
 		netlink.LinkDel(link)
 	}