diff --git a/cgroups/fs/blkio.go b/cgroups/fs/blkio.go index 0e0a198de..459f2df90 100644 --- a/cgroups/fs/blkio.go +++ b/cgroups/fs/blkio.go @@ -7,6 +7,7 @@ import ( "path/filepath" "strconv" "strings" + "syscall" "github.com/docker/libcontainer/cgroups" ) @@ -65,6 +66,9 @@ func getBlkioStat(path string) ([]cgroups.BlkioStatEntry, error) { var blkioStats []cgroups.BlkioStatEntry f, err := os.Open(path) if err != nil { + if pathErr, ok := err.(*os.PathError); ok && pathErr.Err == syscall.ENOENT { + return blkioStats, nil + } return nil, err } defer f.Close() diff --git a/cgroups/fs/blkio_test.go b/cgroups/fs/blkio_test.go index c916c86bb..4a66e7a7b 100644 --- a/cgroups/fs/blkio_test.go +++ b/cgroups/fs/blkio_test.go @@ -86,8 +86,8 @@ func TestBlkioStatsNoSectorsFile(t *testing.T) { blkio := &blkioGroup{} err := blkio.GetStats(helper.CgroupData, &actualStats) - if err == nil { - t.Fatal("Expected to fail, but did not") + if err != nil { + t.Fatalf("Failed unexpectedly: %s", err) } } @@ -102,8 +102,8 @@ func TestBlkioStatsNoServiceBytesFile(t *testing.T) { blkio := &blkioGroup{} err := blkio.GetStats(helper.CgroupData, &actualStats) - if err == nil { - t.Fatal("Expected to fail, but did not") + if err != nil { + t.Fatalf("Failed unexpectedly: %s", err) } } @@ -118,8 +118,8 @@ func TestBlkioStatsNoServicedFile(t *testing.T) { blkio := &blkioGroup{} err := blkio.GetStats(helper.CgroupData, &actualStats) - if err == nil { - t.Fatal("Expected to fail, but did not") + if err != nil { + t.Fatalf("Failed unexpectedly: %s", err) } } @@ -134,8 +134,8 @@ func TestBlkioStatsNoQueuedFile(t *testing.T) { blkio := &blkioGroup{} err := blkio.GetStats(helper.CgroupData, &actualStats) - if err == nil { - t.Fatal("Expected to fail, but did not") + if err != nil { + t.Fatalf("Failed unexpectedly: %s", err) } } diff --git a/cgroups/fs/memory.go b/cgroups/fs/memory.go index b4453f4e7..ab74def30 100644 --- a/cgroups/fs/memory.go +++ b/cgroups/fs/memory.go @@ -5,6 +5,7 @@ import ( "os" "path/filepath" "strconv" + "syscall" "github.com/docker/libcontainer/cgroups" ) @@ -60,6 +61,9 @@ func (s *memoryGroup) GetStats(d *data, stats *cgroups.Stats) error { // Set stats from memory.stat. statsFile, err := os.Open(filepath.Join(path, "memory.stat")) if err != nil { + if pathErr, ok := err.(*os.PathError); ok && pathErr.Err == syscall.ENOENT { + return nil + } return err } defer statsFile.Close() diff --git a/cgroups/fs/memory_test.go b/cgroups/fs/memory_test.go index 8307482bc..7d8950e1a 100644 --- a/cgroups/fs/memory_test.go +++ b/cgroups/fs/memory_test.go @@ -43,8 +43,8 @@ func TestMemoryStatsNoStatFile(t *testing.T) { memory := &memoryGroup{} err := memory.GetStats(helper.CgroupData, &actualStats) - if err == nil { - t.Fatal("Expected failure") + if err != nil { + t.Fatal(err) } }