Explorar el Código

make sure interface up successful

Signed-off-by: bingshen.wbs <bingshen.wbs@alibaba-inc.com>
bingshen.wbs hace 9 años
padre
commit
93cada0d94
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  1. 7 1
      libnetwork/osl/interface_linux.go

+ 7 - 1
libnetwork/osl/interface_linux.go

@@ -6,6 +6,7 @@ import (
 	"regexp"
 	"sync"
 	"syscall"
+	"time"
 
 	log "github.com/Sirupsen/logrus"
 	"github.com/docker/libnetwork/ns"
@@ -290,7 +291,12 @@ func (n *networkNamespace) AddInterface(srcName, dstPrefix string, options ...If
 	}
 
 	// Up the interface.
-	if err := nlh.LinkSetUp(iface); err != nil {
+	cnt := 0
+	for err = nlh.LinkSetUp(iface); err != nil && cnt < 3; cnt++ {
+		log.Debugf("retrying link setup because of: %v", err)
+		time.Sleep(10 * time.Millisecond)
+	}
+	if err != nil {
 		return fmt.Errorf("failed to set link up: %v", err)
 	}