Kaynağa Gözat

make sure interface up successful

Signed-off-by: bingshen.wbs <bingshen.wbs@alibaba-inc.com>
bingshen.wbs 9 yıl önce
ebeveyn
işleme
93cada0d94
1 değiştirilmiş dosya ile 7 ekleme ve 1 silme
  1. 7 1
      libnetwork/osl/interface_linux.go

+ 7 - 1
libnetwork/osl/interface_linux.go

@@ -6,6 +6,7 @@ import (
 	"regexp"
 	"regexp"
 	"sync"
 	"sync"
 	"syscall"
 	"syscall"
+	"time"
 
 
 	log "github.com/Sirupsen/logrus"
 	log "github.com/Sirupsen/logrus"
 	"github.com/docker/libnetwork/ns"
 	"github.com/docker/libnetwork/ns"
@@ -290,7 +291,12 @@ func (n *networkNamespace) AddInterface(srcName, dstPrefix string, options ...If
 	}
 	}
 
 
 	// Up the interface.
 	// 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)
 		return fmt.Errorf("failed to set link up: %v", err)
 	}
 	}