浏览代码

Merge pull request #136 from linvjw/rhbz1184579

Retry VXLAN interface creation if it fails
Eugene Yakubovich 10 年之前
父节点
当前提交
0a136a7056
共有 1 个文件被更改,包括 12 次插入3 次删除
  1. 12 3
      backend/vxlan/vxlan.go

+ 12 - 3
backend/vxlan/vxlan.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"net"
 	"sync"
+	"time"
 
 	log "github.com/coreos/flannel/Godeps/_workspace/src/github.com/golang/glog"
 	"github.com/coreos/flannel/Godeps/_workspace/src/github.com/vishvananda/netlink"
@@ -73,9 +74,17 @@ func (vb *VXLANBackend) Init(extIface *net.Interface, extIP net.IP) (*backend.Su
 	}
 
 	var err error
-	vb.dev, err = newVXLANDevice(&devAttrs)
-	if err != nil {
-		return nil, err
+	for {
+		vb.dev, err = newVXLANDevice(&devAttrs)
+		if err == nil {
+			break
+		} else {
+			log.Error("VXLAN init: ", err)
+			log.Info("Retrying in 1 second...")
+
+			// wait 1 sec before retrying
+			time.Sleep(1*time.Second)
+		}
 	}
 
 	sa, err := newSubnetAttrs(extIP, vb.dev.MACAddr())