From f429a2528d62e3c3c54107a221ac0791905aef3d 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 --- libnetwork/sandbox/namespace_linux.go | 14 ++++++++------ libnetwork/sandbox/sandbox_linux_test.go | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/libnetwork/sandbox/namespace_linux.go b/libnetwork/sandbox/namespace_linux.go index bb1770d16b..7ecf4b3762 100644 --- a/libnetwork/sandbox/namespace_linux.go +++ b/libnetwork/sandbox/namespace_linux.go @@ -25,7 +25,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 @@ -57,7 +57,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)) @@ -78,16 +78,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 @@ -120,6 +118,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/libnetwork/sandbox/sandbox_linux_test.go b/libnetwork/sandbox/sandbox_linux_test.go index b550363bf2..2700635352 100644 --- a/libnetwork/sandbox/sandbox_linux_test.go +++ b/libnetwork/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 } @@ -152,7 +152,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()) }