From b862d2bfe6a1c84622970b749d5e3c55fbbe32fc Mon Sep 17 00:00:00 2001 From: gmarek Date: Mon, 22 Feb 2016 10:10:18 +0100 Subject: [PATCH] Wait for all route creation in RouteController --- pkg/controller/route/routecontroller.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/controller/route/routecontroller.go b/pkg/controller/route/routecontroller.go index 114acdf4afc..344d4019daa 100644 --- a/pkg/controller/route/routecontroller.go +++ b/pkg/controller/route/routecontroller.go @@ -19,6 +19,7 @@ package route import ( "fmt" "net" + "sync" "time" "github.com/golang/glog" @@ -96,19 +97,23 @@ func (rc *RouteController) reconcile(nodes []api.Node, routes []*cloudprovider.R } nodeCIDRs[node.Name] = node.Spec.PodCIDR } + wg := sync.WaitGroup{} for _, route := range routes { if rc.isResponsibleForRoute(route) { // Check if this route applies to a node we know about & has correct CIDR. if nodeCIDRs[route.TargetInstance] != route.DestinationCIDR { + wg.Add(1) // Delete the route. go func(route *cloudprovider.Route) { if err := rc.routes.DeleteRoute(rc.clusterName, route); err != nil { glog.Errorf("Could not delete route %s %s: %v", route.Name, route.DestinationCIDR, err) } + wg.Done() }(route) } } } + wg.Wait() return nil }