diff --git a/container/docker/fsHandler.go b/container/docker/fsHandler.go index 0792ebac..c5b406a4 100644 --- a/container/docker/fsHandler.go +++ b/container/docker/fsHandler.go @@ -67,15 +67,23 @@ func newFsHandler(period time.Duration, rootfs, extraDir string, fsInfo fs.FsInf } func (fh *realFsHandler) update() error { + var ( + baseUsage, extraDirUsage uint64 + err error + ) // TODO(vishh): Add support for external mounts. - baseUsage, err := fh.fsInfo.GetDirUsage(fh.rootfs, duTimeout) - if err != nil { - return err + if fh.rootfs != "" { + baseUsage, err = fh.fsInfo.GetDirUsage(fh.rootfs, duTimeout) + if err != nil { + return err + } } - extraDirUsage, err := fh.fsInfo.GetDirUsage(fh.extraDir, duTimeout) - if err != nil { - return err + if fh.extraDir != "" { + extraDirUsage, err = fh.fsInfo.GetDirUsage(fh.extraDir, duTimeout) + if err != nil { + return err + } } fh.Lock() diff --git a/fs/fs.go b/fs/fs.go index 5d0489e7..02bda501 100644 --- a/fs/fs.go +++ b/fs/fs.go @@ -358,6 +358,9 @@ func (self *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error) { } func (self *RealFsInfo) GetDirUsage(dir string, timeout time.Duration) (uint64, error) { + if dir == "" { + return 0, fmt.Errorf("invalid directory") + } cmd := exec.Command("nice", "-n", "19", "du", "-s", dir) stdoutp, err := cmd.StdoutPipe() if err != nil {