Re: [PATCH 2/2] open_by_handle: add a test for connectable file handles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 8, 2025 at 9:38 PM Zorro Lang <zlang@xxxxxxxxxx> wrote:
>
> On Wed, Apr 09, 2025 at 01:52:20PM +0200, Amir Goldstein wrote:
> > This is a variant of generic/477 with connectable file handles.
> > This test uses load and store of file handles from a temp file to test
> > decoding connectable file handles after cycle mount and after renames.
> > Decoding connectable file handles after being moved to a new parent
> > is expected to fail.
> >
> > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>
> > ---
>
> Hi Amir,
>
> This test case fails on some filesystems, e.g. nfs [1] and tmpfs [2].
> Is this as your expected?

No. I will look into this failure.
Thanks for testing!

Amir.

>
> Thanks,
> Zorro
>
> [1]
> generic/777 fails on nfs:
>
> --- /dev/fd/63  2025-05-07 02:44:24.150560533 -0400
> +++ generic/777.out.bad 2025-05-07 02:44:23.999734558 -0400
> @@ -1,7 +1,37 @@
>  QA output created by 777
>  test_file_handles after cycle mount
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000000) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000001) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000002) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000003) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000004) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000005) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000006) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000007) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000008) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000009) returned 116 incorrectly on a linked file!
>  test_file_handles after rename parent
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000000) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000001) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000002) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000003) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000004) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000005) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000006) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000007) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000008) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000009) returned 116 incorrectly on a linked file!
>  test_file_handles after rename grandparent
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000000) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000001) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000002) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000003) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000004) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000005) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000006) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000007) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000008) returned 116 incorrectly on a linked file!
> +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000009) returned 116 incorrectly on a linked file!
>  test_file_handles after move to new parent
>  open_by_handle(TEST_DIR/file000000) returned 116 incorrectly on a linked file!
>  open_by_handle(TEST_DIR/file000001) returned 116 incorrectly on a linked file!
>
> [2]
> generic/777 fails on tmpfs:
>
> --- /dev/fd/63  2025-05-07 07:53:26.265453903 -0400
> +++ generic/777.out.bad 2025-05-07 07:53:25.536434660 -0400
> @@ -3,13 +3,3 @@
>  test_file_handles after rename parent
>  test_file_handles after rename grandparent
>  test_file_handles after move to new parent
> -open_by_handle(TEST_DIR/file000000) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000001) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000002) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000003) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000004) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000005) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000006) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000007) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000008) returned 116 incorrectly on a linked file!
> -open_by_handle(TEST_DIR/file000009) returned 116 incorrectly on a linked file!
>
>
> >  tests/generic/777     | 79 +++++++++++++++++++++++++++++++++++++++++++
> >  tests/generic/777.out | 15 ++++++++
> >  2 files changed, 94 insertions(+)
> >  create mode 100755 tests/generic/777
> >  create mode 100644 tests/generic/777.out
> >
> > diff --git a/tests/generic/777 b/tests/generic/777
> > new file mode 100755
> > index 00000000..52a461c3
> > --- /dev/null
> > +++ b/tests/generic/777
> > @@ -0,0 +1,79 @@
> > +#! /bin/bash
> > +# SPDX-License-Identifier: GPL-2.0
> > +# Copyright (C) 2018-2025 CTERA Networks. All Rights Reserved.
> > +#
> > +# FS QA Test No. 777
> > +#
> > +# Check open by connectable file handle after cycle mount.
> > +#
> > +# This is a variant of test 477 with connectable file handles.
> > +# This test uses load and store of file handles from a temp file to test
> > +# decoding file handles after cycle mount and after directory renames.
> > +# Decoding connectable file handles after being moved to a new parent
> > +# is expected to fail.
> > +#
> > +. ./common/preamble
> > +_begin_fstest auto quick exportfs
> > +
> > +# Import common functions.
> > +. ./common/filter
> > +
> > +
> > +# Modify as appropriate.
> > +_require_test
> > +# Require connectable file handles support
> > +_require_open_by_handle -N
> > +
> > +NUMFILES=10
> > +testroot=$TEST_DIR/$seq-dir
> > +testdir=$testroot/testdir
> > +
> > +# Create test dir and test files, encode connectable file handles and store to tmp file
> > +create_test_files()
> > +{
> > +     rm -rf $testdir
> > +     mkdir -p $testdir
> > +     $here/src/open_by_handle -N -cwp -o $tmp.handles_file $testdir $NUMFILES
> > +}
> > +
> > +# Decode connectable file handles loaded from tmp file
> > +test_file_handles()
> > +{
> > +     local opt=$1
> > +     local when=$2
> > +
> > +     echo test_file_handles after $when
> > +     $here/src/open_by_handle $opt -i $tmp.handles_file $TEST_DIR $NUMFILES
> > +}
> > +
> > +# Decode file handles of files/dir after cycle mount
> > +create_test_files
> > +_test_cycle_mount
> > +test_file_handles -rp "cycle mount"
> > +
> > +# Decode file handles of files/dir after rename of parent and cycle mount
> > +create_test_files $testdir
> > +rm -rf $testdir.renamed
> > +mv $testdir $testdir.renamed/
> > +_test_cycle_mount
> > +test_file_handles -rp "rename parent"
> > +
> > +# Decode file handles of files/dir after rename of grandparent and cycle mount
> > +create_test_files $testdir
> > +rm -rf $testroot.renamed
> > +mv $testroot $testroot.renamed/
> > +_test_cycle_mount
> > +test_file_handles -rp "rename grandparent"
> > +
> > +# Decode file handles of files/dir after move to new parent and cycle mount
> > +# This is expected to fail because the conectable file handle encodes the
> > +# old parent.
> > +create_test_files $testdir
> > +rm -rf $testdir.new
> > +mkdir -p $testdir.new
> > +mv $testdir/* $testdir.new/
> > +_test_cycle_mount
> > +test_file_handles -r "move to new parent" | _filter_test_dir
> > +
> > +status=0
> > +exit
> > diff --git a/tests/generic/777.out b/tests/generic/777.out
> > new file mode 100644
> > index 00000000..648c480c
> > --- /dev/null
> > +++ b/tests/generic/777.out
> > @@ -0,0 +1,15 @@
> > +QA output created by 777
> > +test_file_handles after cycle mount
> > +test_file_handles after rename parent
> > +test_file_handles after rename grandparent
> > +test_file_handles after move to new parent
> > +open_by_handle(TEST_DIR/file000000) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000001) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000002) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000003) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000004) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000005) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000006) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000007) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000008) returned 116 incorrectly on a linked file!
> > +open_by_handle(TEST_DIR/file000009) returned 116 incorrectly on a linked file!
> > --
> > 2.34.1
> >
>





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux