From 051f4ccdad73943c57dee26ac0c705cc6e88e0c9 Mon Sep 17 00:00:00 2001 From: Jana Radhakrishnan Date: Wed, 27 May 2015 20:20:24 +0000 Subject: [PATCH] Loopback interface not t brought up Loopback interface was s not brought up when wemoved to clone method of creating namespace. e. Adding it. Also taking care of PR R comments. Signed-off-by: Jana Radhakrishnan --- sandbox/namespace_linux.go | 14 ++++++++------ sandbox/sandbox_linux_test.go | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sandbox/namespace_linux.go b/sandbox/namespace_linux.go index 9da67d7..af1efc1 100644 --- a/sandbox/namespace_linux.go +++ b/sandbox/namespace_linux.go @@ -24,7 +24,7 @@ var ( garbagePathMap = make(map[string]bool) gpmLock sync.Mutex gpmWg sync.WaitGroup - gpmCleanupPeriod = 60 + gpmCleanupPeriod = 60 * time.Second ) // The networkNamespace type is the linux implementation of the Sandbox @@ -56,7 +56,7 @@ func createBasePath() { func removeUnusedPaths() { for { - time.Sleep(time.Duration(gpmCleanupPeriod) * time.Second) + time.Sleep(time.Duration(gpmCleanupPeriod)) gpmLock.Lock() pathList := make([]string, 0, len(garbagePathMap)) @@ -77,16 +77,14 @@ func removeUnusedPaths() { func addToGarbagePaths(path string) { gpmLock.Lock() - defer gpmLock.Unlock() - garbagePathMap[path] = true + defer gpmLock.Unlock() } func removeFromGarbagePaths(path string) { gpmLock.Lock() - defer gpmLock.Unlock() - delete(garbagePathMap, path) + defer gpmLock.Unlock() } // GenerateKey generates a sandbox key based on the passed @@ -119,6 +117,10 @@ func reexecCreateNamespace() { if err := syscall.Mount("/proc/self/ns/net", os.Args[1], "bind", syscall.MS_BIND, ""); err != nil { log.Fatal(err) } + + if err := loopbackUp(); err != nil { + log.Fatal(err) + } } func createNetworkNamespace(path string, osCreate bool) (*Info, error) { diff --git a/sandbox/sandbox_linux_test.go b/sandbox/sandbox_linux_test.go index d8dded7..7fda707 100644 --- a/sandbox/sandbox_linux_test.go +++ b/sandbox/sandbox_linux_test.go @@ -33,7 +33,7 @@ func newKey(t *testing.T) (string, error) { } // Set the rpmCleanupPeriod to be low to make the test run quicker - gpmCleanupPeriod = 2 + gpmCleanupPeriod = 2 * time.Second return name, nil } @@ -143,7 +143,7 @@ func verifySandbox(t *testing.T, s Sandbox) { } func verifyCleanup(t *testing.T, s Sandbox) { - time.Sleep(time.Duration(gpmCleanupPeriod*2) * time.Second) + time.Sleep(time.Duration(gpmCleanupPeriod * 2)) if _, err := os.Stat(s.Key()); err == nil { t.Fatalf("The sandbox path %s is not getting cleanup event after twice the cleanup period", s.Key()) }