diff mbox series

overlay/029: fix test failure with index feature enabled

Message ID 20200409112900.15341-1-amir73il@gmail.com (mailing list archive)
State New, archived
Headers show
Series overlay/029: fix test failure with index feature enabled | expand

Commit Message

Amir Goldstein April 9, 2020, 11:29 a.m. UTC
When overlayfs index feature is enabled by default in either kernel
config or module parameters, this test fails:

    mount: /tmp/8751/mnt: mount(2) system call failed: Stale file handle.
    cat: /tmp/8751/mnt/bar: No such file or directory

The reason is that with index feature enabled, an upper/work dirs cannot
be reused for mounting with a different lower layer.

Reported-by: Chengguang Xu <cgxu519@mykernel.net>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
 tests/overlay/029 | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Eryu Guan April 19, 2020, 4:06 p.m. UTC | #1
On Thu, Apr 09, 2020 at 02:29:00PM +0300, Amir Goldstein wrote:
> When overlayfs index feature is enabled by default in either kernel
> config or module parameters, this test fails:
> 
>     mount: /tmp/8751/mnt: mount(2) system call failed: Stale file handle.
>     cat: /tmp/8751/mnt/bar: No such file or directory
> 
> The reason is that with index feature enabled, an upper/work dirs cannot
> be reused for mounting with a different lower layer.

I re-built my test kernel with CONFIG_OVERLAY_FS_INDEX=y, and confirmed
/sys/module/overlay/parameters/index is 'Y', but test still passes for
me. And I do notice the following info in dmesg:

[  598.663923] overlayfs: fs on '/mnt/scratch/ovl-mnt/up' does not support file handles, falling back to index=off,nfs_export=off.
[  598.674299] overlayfs: fs on '/mnt/scratch/ovl-mnt/low' does not support file handles, falling back to index=off,nfs_export=off.
[  598.684594] overlayfs: fs on '/mnt/scratch/ovl-mnt/' does not support file handles, falling back to index=off,nfs_export=off.

Seems it has something to do with nfs_export feature? I have it disabled
by default.

 # CONFIG_OVERLAY_FS_NFS_EXPORT is not set

Could you please help confirm?

Thanks,
Eryu

> 
> Reported-by: Chengguang Xu <cgxu519@mykernel.net>
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> ---
>  tests/overlay/029 | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/tests/overlay/029 b/tests/overlay/029
> index 1d2d2092..17f58de7 100755
> --- a/tests/overlay/029
> +++ b/tests/overlay/029
> @@ -68,12 +68,18 @@ _overlay_mount_dirs $SCRATCH_MNT/up $tmp/{upper,work} \
>  cat $tmp/mnt/foo
>  $UMOUNT_PROG $tmp/mnt
>  
> +# re-create upper/work to avoid ovl_verify_origin() mount failure
> +# when index is enabled
> +rm -rf $tmp/{upper,work}
> +mkdir -p $tmp/{upper,work}
>  # mount overlay again using lower dir from SCRATCH_MNT dir
>  _overlay_mount_dirs $SCRATCH_MNT/low $tmp/{upper,work} \
>    overlay $tmp/mnt
>  cat $tmp/mnt/bar
>  $UMOUNT_PROG $tmp/mnt
>  
> +rm -rf $tmp/{upper,work}
> +mkdir -p $tmp/{upper,work}
>  # mount overlay again using SCRATCH_MNT dir
>  _overlay_mount_dirs $SCRATCH_MNT/ $tmp/{upper,work} \
>    overlay $tmp/mnt
> -- 
> 2.17.1
>
Amir Goldstein April 19, 2020, 4:12 p.m. UTC | #2
On Sun, Apr 19, 2020 at 7:05 PM Eryu Guan <guan@eryu.me> wrote:
>
> On Thu, Apr 09, 2020 at 02:29:00PM +0300, Amir Goldstein wrote:
> > When overlayfs index feature is enabled by default in either kernel
> > config or module parameters, this test fails:
> >
> >     mount: /tmp/8751/mnt: mount(2) system call failed: Stale file handle.
> >     cat: /tmp/8751/mnt/bar: No such file or directory
> >
> > The reason is that with index feature enabled, an upper/work dirs cannot
> > be reused for mounting with a different lower layer.
>
> I re-built my test kernel with CONFIG_OVERLAY_FS_INDEX=y, and confirmed
> /sys/module/overlay/parameters/index is 'Y', but test still passes for
> me. And I do notice the following info in dmesg:
>
> [  598.663923] overlayfs: fs on '/mnt/scratch/ovl-mnt/up' does not support file handles, falling back to index=off,nfs_export=off.
> [  598.674299] overlayfs: fs on '/mnt/scratch/ovl-mnt/low' does not support file handles, falling back to index=off,nfs_export=off.
> [  598.684594] overlayfs: fs on '/mnt/scratch/ovl-mnt/' does not support file handles, falling back to index=off,nfs_export=off.
>
> Seems it has something to do with nfs_export feature? I have it disabled
> by default.
>
>  # CONFIG_OVERLAY_FS_NFS_EXPORT is not set
>
> Could you please help confirm?
>

I confirm. enabling index on nested overlay requires that
the lower overlay has nfs_export enabled.

Missed that, but in the bug report, CONFIG_OVERLAY_FS_NFS_EXPORT
was indeed set.

You do not need to rebuild the kernel.
You can reproduce the failure by setting overlay module parameter before
running the tests.

echo Y > /sys/module/overlay/parameters/index
echo Y > /sys/module/overlay/parameters/nfs_export

Thanks,
Amir.
Eryu Guan April 19, 2020, 5:01 p.m. UTC | #3
On Sun, Apr 19, 2020 at 07:12:33PM +0300, Amir Goldstein wrote:
> On Sun, Apr 19, 2020 at 7:05 PM Eryu Guan <guan@eryu.me> wrote:
> >
> > On Thu, Apr 09, 2020 at 02:29:00PM +0300, Amir Goldstein wrote:
> > > When overlayfs index feature is enabled by default in either kernel
> > > config or module parameters, this test fails:
> > >
> > >     mount: /tmp/8751/mnt: mount(2) system call failed: Stale file handle.
> > >     cat: /tmp/8751/mnt/bar: No such file or directory
> > >
> > > The reason is that with index feature enabled, an upper/work dirs cannot
> > > be reused for mounting with a different lower layer.
> >
> > I re-built my test kernel with CONFIG_OVERLAY_FS_INDEX=y, and confirmed
> > /sys/module/overlay/parameters/index is 'Y', but test still passes for
> > me. And I do notice the following info in dmesg:
> >
> > [  598.663923] overlayfs: fs on '/mnt/scratch/ovl-mnt/up' does not support file handles, falling back to index=off,nfs_export=off.
> > [  598.674299] overlayfs: fs on '/mnt/scratch/ovl-mnt/low' does not support file handles, falling back to index=off,nfs_export=off.
> > [  598.684594] overlayfs: fs on '/mnt/scratch/ovl-mnt/' does not support file handles, falling back to index=off,nfs_export=off.
> >
> > Seems it has something to do with nfs_export feature? I have it disabled
> > by default.
> >
> >  # CONFIG_OVERLAY_FS_NFS_EXPORT is not set
> >
> > Could you please help confirm?
> >
> 
> I confirm. enabling index on nested overlay requires that
> the lower overlay has nfs_export enabled.

Thanks!

> 
> Missed that, but in the bug report, CONFIG_OVERLAY_FS_NFS_EXPORT
> was indeed set.

Would you please update the commit log accordingly as well?

> 
> You do not need to rebuild the kernel.
> You can reproduce the failure by setting overlay module parameter before
> running the tests.
> 
> echo Y > /sys/module/overlay/parameters/index
> echo Y > /sys/module/overlay/parameters/nfs_export

Ah, forgot about that.. it's easier now :)

Thanks,
Eryu
Amir Goldstein April 19, 2020, 5:54 p.m. UTC | #4
On Sun, Apr 19, 2020 at 8:00 PM Eryu Guan <guan@eryu.me> wrote:
>
> On Sun, Apr 19, 2020 at 07:12:33PM +0300, Amir Goldstein wrote:
> > On Sun, Apr 19, 2020 at 7:05 PM Eryu Guan <guan@eryu.me> wrote:
> > >
> > > On Thu, Apr 09, 2020 at 02:29:00PM +0300, Amir Goldstein wrote:
> > > > When overlayfs index feature is enabled by default in either kernel
> > > > config or module parameters, this test fails:
> > > >
> > > >     mount: /tmp/8751/mnt: mount(2) system call failed: Stale file handle.
> > > >     cat: /tmp/8751/mnt/bar: No such file or directory
> > > >
> > > > The reason is that with index feature enabled, an upper/work dirs cannot
> > > > be reused for mounting with a different lower layer.
> > >
> > > I re-built my test kernel with CONFIG_OVERLAY_FS_INDEX=y, and confirmed
> > > /sys/module/overlay/parameters/index is 'Y', but test still passes for
> > > me. And I do notice the following info in dmesg:
> > >
> > > [  598.663923] overlayfs: fs on '/mnt/scratch/ovl-mnt/up' does not support file handles, falling back to index=off,nfs_export=off.
> > > [  598.674299] overlayfs: fs on '/mnt/scratch/ovl-mnt/low' does not support file handles, falling back to index=off,nfs_export=off.
> > > [  598.684594] overlayfs: fs on '/mnt/scratch/ovl-mnt/' does not support file handles, falling back to index=off,nfs_export=off.
> > >
> > > Seems it has something to do with nfs_export feature? I have it disabled
> > > by default.
> > >
> > >  # CONFIG_OVERLAY_FS_NFS_EXPORT is not set
> > >
> > > Could you please help confirm?
> > >
> >
> > I confirm. enabling index on nested overlay requires that
> > the lower overlay has nfs_export enabled.
>
> Thanks!
>
> >
> > Missed that, but in the bug report, CONFIG_OVERLAY_FS_NFS_EXPORT
> > was indeed set.
>
> Would you please update the commit log accordingly as well?
>

OK.

Thanks,
Amir.
diff mbox series

Patch

diff --git a/tests/overlay/029 b/tests/overlay/029
index 1d2d2092..17f58de7 100755
--- a/tests/overlay/029
+++ b/tests/overlay/029
@@ -68,12 +68,18 @@  _overlay_mount_dirs $SCRATCH_MNT/up $tmp/{upper,work} \
 cat $tmp/mnt/foo
 $UMOUNT_PROG $tmp/mnt
 
+# re-create upper/work to avoid ovl_verify_origin() mount failure
+# when index is enabled
+rm -rf $tmp/{upper,work}
+mkdir -p $tmp/{upper,work}
 # mount overlay again using lower dir from SCRATCH_MNT dir
 _overlay_mount_dirs $SCRATCH_MNT/low $tmp/{upper,work} \
   overlay $tmp/mnt
 cat $tmp/mnt/bar
 $UMOUNT_PROG $tmp/mnt
 
+rm -rf $tmp/{upper,work}
+mkdir -p $tmp/{upper,work}
 # mount overlay again using SCRATCH_MNT dir
 _overlay_mount_dirs $SCRATCH_MNT/ $tmp/{upper,work} \
   overlay $tmp/mnt