containerd / accelerated-container-image

A production-ready remote container image format (overlaybd) and snapshotter based on block-device.
Apache License 2.0
405 stars 73 forks source link

Attach overlaybd device will fail if the mountpoint contains a symbol link #295

Open BigVan opened 2 months ago

BigVan commented 2 months ago

What happened in your environment?

ubuntu/centos

What did you expect to happen?

No response

How can we reproduce it?

create a symbol link for snapshotter's root it will cause a failure when attaching a device

func lookup(dir string) error {
    dir = filepath.Clean(dir)

    m, err := mountinfo.GetMounts(mountinfo.SingleEntryFilter(dir))
    if err != nil {
        return errors.Wrapf(err, "failed to get mount info for %q", dir)
    }

    if len(m) == 0 {
        return errors.Errorf("failed to find the mount point for %q", dir)
    }
    return nil
}

mountinfo.GetMounts can not find the matched mountpoint if the 'dir' contains a symbol link in its path

What is the version of your Accelerated Container Image?

latest

What is your OS environment?

ubuntu 22.04

Are you willing to submit PRs to fix it?