From 93cada0d94101578937e57ca62080a8c48fc2d97 Mon Sep 17 00:00:00 2001 From: "bingshen.wbs" Date: Mon, 20 Jun 2016 16:21:19 +0800 Subject: [PATCH] make sure interface up successful Signed-off-by: bingshen.wbs --- libnetwork/osl/interface_linux.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libnetwork/osl/interface_linux.go b/libnetwork/osl/interface_linux.go index 63fcf5561d..5b537a4cb7 100644 --- a/libnetwork/osl/interface_linux.go +++ b/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) }