Quellcode durchsuchen

Merge pull request #136 from linvjw/rhbz1184579

Retry VXLAN interface creation if it fails
Eugene Yakubovich vor 10 Jahren
Ursprung
Commit
0a136a7056
1 geänderte Dateien mit 12 neuen und 3 gelöschten Zeilen
  1. 12 3
      backend/vxlan/vxlan.go

+ 12 - 3
backend/vxlan/vxlan.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"fmt"
 	"net"
 	"net"
 	"sync"
 	"sync"
+	"time"
 
 
 	log "github.com/coreos/flannel/Godeps/_workspace/src/github.com/golang/glog"
 	log "github.com/coreos/flannel/Godeps/_workspace/src/github.com/golang/glog"
 	"github.com/coreos/flannel/Godeps/_workspace/src/github.com/vishvananda/netlink"
 	"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
 	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())
 	sa, err := newSubnetAttrs(extIP, vb.dev.MACAddr())