diff mbox series

xfs: annotate fix commits for upcoming 5.10.y backports

Message ID 20220520143249.2103631-1-amir73il@gmail.com (mailing list archive)
State New, archived
Headers show
Series xfs: annotate fix commits for upcoming 5.10.y backports | expand

Commit Message

Amir Goldstein May 20, 2022, 2:32 p.m. UTC
In preparation for backporting xfs fixes to stable kernel 5.10.y,
annotate some of the tests that pass after applying the backports.

Most of the annotated tests have the fix commit documented either
in comment or in commit message already.

All tests have been verified to pass with fix commits apply, but
for a few tests, a failure was observed when running on kernel without
the documented fix commit. That is probably because failure happens
only on a specific setup.

Generic tests have also been annotated with xfs fix commits.
That may produce wrong hints if the test fails on another fs, but
that is what hints are for - to give tester a hint, so if tester is
not testing xfs, it's easy to figure out that the hint is irrelevant.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---

Hi Zorro,

Here are a bunch of fixed_by annotations for xfs bug fixes,
which I am in the process of testing for stable kernel v5.10.y [1].

There are a lot more tests with fix commits documented in comments
and/or commit message, but I did not annotate any test that I did not
verify myself to pass with the fix commit.

If tests were not documented in kernel commit message nor mentioned
in the mailing list correspondance and if kernel commit or subject were
not mentioned in fstests commit message or comments, then I may have
missed those secret tests.

Thanks,
Amir.

[1] https://github.com/amir73il/linux/commits/xfs-5.10.y

 tests/generic/623 | 3 +++
 tests/generic/631 | 2 ++
 tests/generic/646 | 3 +++
 tests/generic/649 | 3 +++
 tests/xfs/145     | 3 +++
 tests/xfs/177     | 2 ++
 tests/xfs/513     | 3 +++
 tests/xfs/539     | 7 +++++--
 tests/xfs/542     | 3 +++
 9 files changed, 27 insertions(+), 2 deletions(-)

Comments

Zorro Lang May 22, 2022, 2:10 p.m. UTC | #1
On Fri, May 20, 2022 at 05:32:49PM +0300, Amir Goldstein wrote:
> In preparation for backporting xfs fixes to stable kernel 5.10.y,
> annotate some of the tests that pass after applying the backports.
> 
> Most of the annotated tests have the fix commit documented either
> in comment or in commit message already.
> 
> All tests have been verified to pass with fix commits apply, but
> for a few tests, a failure was observed when running on kernel without
> the documented fix commit. That is probably because failure happens
> only on a specific setup.
> 
> Generic tests have also been annotated with xfs fix commits.
> That may produce wrong hints if the test fails on another fs, but
> that is what hints are for - to give tester a hint, so if tester is
> not testing xfs, it's easy to figure out that the hint is irrelevant.
> 
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> ---
> 
> Hi Zorro,
> 
> Here are a bunch of fixed_by annotations for xfs bug fixes,
> which I am in the process of testing for stable kernel v5.10.y [1].

I just confirmed that these commit IDs are right, and these cases are
specific reproducer for them. So I'd like to ack this patch.

Reviewed-by: Zorro Lang <zlang@redhat.com>

> 
> There are a lot more tests with fix commits documented in comments
> and/or commit message, but I did not annotate any test that I did not
> verify myself to pass with the fix commit.

Thanks for you did that such carefully. You remind me that I just release
a new fstests version v2022.05.22, which has several known failures too.
https://lore.kernel.org/fstests/20220522094622.25751C385AA@smtp.kernel.org/T/#u

I'm thinking about another question, if a case covers more and more known
issue, the known list will be very long, even might take 1/3 of the code
lines. That will look not graceful ...

We'd better to not make an existed case grow biger and biger. And don't
record known issues in a case which just can reproduce it with small chance
randomly. Likes you record e4826691cc7e ("xfs: restore shutdown check in mapped
write fault path") into g/623, actually we found it by g/019 at first, then
write g/623 to cover that. So g/019 isn't the recommended case to record this
issue.

Thanks,
Zorro

> 
> If tests were not documented in kernel commit message nor mentioned
> in the mailing list correspondance and if kernel commit or subject were
> not mentioned in fstests commit message or comments, then I may have
> missed those secret tests.
> 
> Thanks,
> Amir.
> 
> [1] https://github.com/amir73il/linux/commits/xfs-5.10.y
> 
>  tests/generic/623 | 3 +++
>  tests/generic/631 | 2 ++
>  tests/generic/646 | 3 +++
>  tests/generic/649 | 3 +++
>  tests/xfs/145     | 3 +++
>  tests/xfs/177     | 2 ++
>  tests/xfs/513     | 3 +++
>  tests/xfs/539     | 7 +++++--
>  tests/xfs/542     | 3 +++
>  9 files changed, 27 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/generic/623 b/tests/generic/623
> index 324251b7..ea016d91 100755
> --- a/tests/generic/623
> +++ b/tests/generic/623
> @@ -12,6 +12,9 @@ _begin_fstest auto quick shutdown
>  . ./common/filter
>  
>  _supported_fs generic
> +_fixed_by_kernel_commit e4826691cc7e \
> +	"xfs: restore shutdown check in mapped write fault path"
> +
>  _require_scratch_nocheck
>  _require_scratch_shutdown
>  
> diff --git a/tests/generic/631 b/tests/generic/631
> index 219f7a05..ff1bb113 100755
> --- a/tests/generic/631
> +++ b/tests/generic/631
> @@ -40,6 +40,8 @@ _require_scratch
>  _require_attrs trusted
>  _supported_fs ^overlay
>  _require_extra_fs overlay
> +_fixed_by_kernel_commit 6da1b4b1ab36 \
> +	"xfs: fix an ABBA deadlock in xfs_rename"
>  
>  _scratch_mkfs >> $seqres.full
>  _scratch_mount
> diff --git a/tests/generic/646 b/tests/generic/646
> index 79d3f17c..027df557 100755
> --- a/tests/generic/646
> +++ b/tests/generic/646
> @@ -15,6 +15,9 @@
>  _begin_fstest auto quick recoveryloop shutdown
>  
>  # real QA test starts here
> +_supported_fs generic
> +_fixed_by_kernel_commit 50d25484bebe \
> +	"xfs: sync lazy sb accounting on quiesce of read-only mounts"
>  
>  _require_scratch
>  _require_scratch_shutdown
> diff --git a/tests/generic/649 b/tests/generic/649
> index a6aabfaf..d6727765 100755
> --- a/tests/generic/649
> +++ b/tests/generic/649
> @@ -33,6 +33,9 @@ _cleanup()
>  
>  # Modify as appropriate.
>  _supported_fs generic
> +_fixed_by_kernel_commit 72a048c1056a \
> +	"xfs: only set IOMAP_F_SHARED when providing a srcmap to a write"
> +
>  _require_cp_reflink
>  _require_test_reflink
>  _require_test_program "punch-alternating"
> diff --git a/tests/xfs/145 b/tests/xfs/145
> index d32e726e..5fd8dcad 100755
> --- a/tests/xfs/145
> +++ b/tests/xfs/145
> @@ -18,6 +18,9 @@ _begin_fstest auto quick quota
>  
>  # real QA test starts here
>  _supported_fs xfs
> +_fixed_by_kernel_commit 1aecf3734a95 \
> +	"xfs: fix chown leaking delalloc quota blocks when fssetxattr fails"
> +
>  _require_command "$FILEFRAG_PROG" filefrag
>  _require_test_program "chprojid_fail"
>  _require_quota
> diff --git a/tests/xfs/177 b/tests/xfs/177
> index 10891550..1e59bd6c 100755
> --- a/tests/xfs/177
> +++ b/tests/xfs/177
> @@ -39,6 +39,8 @@ _cleanup()
>  
>  # Modify as appropriate.
>  _supported_fs xfs
> +_fixed_by_kernel_commit f38a032b165d "xfs: fix I_DONTCACHE"
> +
>  _require_xfs_io_command "bulkstat"
>  _require_scratch
>  
> diff --git a/tests/xfs/513 b/tests/xfs/513
> index bfdfd4f6..85500af0 100755
> --- a/tests/xfs/513
> +++ b/tests/xfs/513
> @@ -31,6 +31,9 @@ _cleanup()
>  
>  # real QA test starts here
>  _supported_fs xfs
> +_fixed_by_kernel_commit 237d7887ae72 \
> +	"xfs: show the proper user quota options"
> +
>  _require_test
>  _require_loop
>  _require_xfs_io_command "falloc"
> diff --git a/tests/xfs/539 b/tests/xfs/539
> index 4bc52c1a..77b44c89 100755
> --- a/tests/xfs/539
> +++ b/tests/xfs/539
> @@ -9,15 +9,18 @@
>  # the same value as during the mount
>  #
>  # Regression test for commit:
> -# xfs: Skip repetitive warnings about mount options
> +# 92cf7d36384b xfs: Skip repetitive warnings about mount options
>  
>  . ./common/preamble
>  _begin_fstest auto quick mount
>  
>  # Import common functions.
>  
> -_require_check_dmesg
>  _supported_fs xfs
> +_fixed_by_kernel_commit 92cf7d36384b \
> +	"xfs: Skip repetitive warnings about mount options"
> +
> +_require_check_dmesg
>  _require_scratch
>  
>  log_tag()
> diff --git a/tests/xfs/542 b/tests/xfs/542
> index 5c45eed7..1540541e 100755
> --- a/tests/xfs/542
> +++ b/tests/xfs/542
> @@ -26,6 +26,9 @@ _cleanup()
>  
>  # real QA test starts here
>  _supported_fs xfs
> +_fixed_by_kernel_commit 5ca5916b6bc9 \
> +	"xfs: punch out data fork delalloc blocks on COW writeback failure"
> +
>  _require_scratch_reflink
>  _require_cp_reflink
>  _require_xfs_io_command "cowextsize"
> -- 
> 2.25.1
>
Amir Goldstein May 23, 2022, 8:30 a.m. UTC | #2
On Sun, May 22, 2022 at 5:10 PM Zorro Lang <zlang@redhat.com> wrote:
>
> On Fri, May 20, 2022 at 05:32:49PM +0300, Amir Goldstein wrote:
> > In preparation for backporting xfs fixes to stable kernel 5.10.y,
> > annotate some of the tests that pass after applying the backports.
> >
> > Most of the annotated tests have the fix commit documented either
> > in comment or in commit message already.
> >
> > All tests have been verified to pass with fix commits apply, but
> > for a few tests, a failure was observed when running on kernel without
> > the documented fix commit. That is probably because failure happens
> > only on a specific setup.
> >
> > Generic tests have also been annotated with xfs fix commits.
> > That may produce wrong hints if the test fails on another fs, but
> > that is what hints are for - to give tester a hint, so if tester is
> > not testing xfs, it's easy to figure out that the hint is irrelevant.
> >
> > Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> > ---
> >
> > Hi Zorro,
> >
> > Here are a bunch of fixed_by annotations for xfs bug fixes,
> > which I am in the process of testing for stable kernel v5.10.y [1].
>
> I just confirmed that these commit IDs are right, and these cases are
> specific reproducer for them. So I'd like to ack this patch.
>
> Reviewed-by: Zorro Lang <zlang@redhat.com>
>
> >
> > There are a lot more tests with fix commits documented in comments
> > and/or commit message, but I did not annotate any test that I did not
> > verify myself to pass with the fix commit.
>
> Thanks for you did that such carefully. You remind me that I just release
> a new fstests version v2022.05.22, which has several known failures too.
> https://lore.kernel.org/fstests/20220522094622.25751C385AA@smtp.kernel.org/T/#u
>
> I'm thinking about another question, if a case covers more and more known
> issue, the known list will be very long, even might take 1/3 of the code
> lines. That will look not graceful ...
>
> We'd better to not make an existed case grow biger and biger. And don't
> record known issues in a case which just can reproduce it with small chance

No of course not, that would not be productive.
fixed_by_commit should be reserved to "proper" regression tests
failing before fix, passing after fix

There could still be several fixed_by commits for different fs
and for different regressions that were detected on different
kernel versions.

> randomly. Likes you record e4826691cc7e ("xfs: restore shutdown check in mapped
> write fault path") into g/623, actually we found it by g/019 at first, then
> write g/623 to cover that. So g/019 isn't the recommended case to record this
> issue.
>

Exactly. Good example.

Thanks,
Amir.
diff mbox series

Patch

diff --git a/tests/generic/623 b/tests/generic/623
index 324251b7..ea016d91 100755
--- a/tests/generic/623
+++ b/tests/generic/623
@@ -12,6 +12,9 @@  _begin_fstest auto quick shutdown
 . ./common/filter
 
 _supported_fs generic
+_fixed_by_kernel_commit e4826691cc7e \
+	"xfs: restore shutdown check in mapped write fault path"
+
 _require_scratch_nocheck
 _require_scratch_shutdown
 
diff --git a/tests/generic/631 b/tests/generic/631
index 219f7a05..ff1bb113 100755
--- a/tests/generic/631
+++ b/tests/generic/631
@@ -40,6 +40,8 @@  _require_scratch
 _require_attrs trusted
 _supported_fs ^overlay
 _require_extra_fs overlay
+_fixed_by_kernel_commit 6da1b4b1ab36 \
+	"xfs: fix an ABBA deadlock in xfs_rename"
 
 _scratch_mkfs >> $seqres.full
 _scratch_mount
diff --git a/tests/generic/646 b/tests/generic/646
index 79d3f17c..027df557 100755
--- a/tests/generic/646
+++ b/tests/generic/646
@@ -15,6 +15,9 @@ 
 _begin_fstest auto quick recoveryloop shutdown
 
 # real QA test starts here
+_supported_fs generic
+_fixed_by_kernel_commit 50d25484bebe \
+	"xfs: sync lazy sb accounting on quiesce of read-only mounts"
 
 _require_scratch
 _require_scratch_shutdown
diff --git a/tests/generic/649 b/tests/generic/649
index a6aabfaf..d6727765 100755
--- a/tests/generic/649
+++ b/tests/generic/649
@@ -33,6 +33,9 @@  _cleanup()
 
 # Modify as appropriate.
 _supported_fs generic
+_fixed_by_kernel_commit 72a048c1056a \
+	"xfs: only set IOMAP_F_SHARED when providing a srcmap to a write"
+
 _require_cp_reflink
 _require_test_reflink
 _require_test_program "punch-alternating"
diff --git a/tests/xfs/145 b/tests/xfs/145
index d32e726e..5fd8dcad 100755
--- a/tests/xfs/145
+++ b/tests/xfs/145
@@ -18,6 +18,9 @@  _begin_fstest auto quick quota
 
 # real QA test starts here
 _supported_fs xfs
+_fixed_by_kernel_commit 1aecf3734a95 \
+	"xfs: fix chown leaking delalloc quota blocks when fssetxattr fails"
+
 _require_command "$FILEFRAG_PROG" filefrag
 _require_test_program "chprojid_fail"
 _require_quota
diff --git a/tests/xfs/177 b/tests/xfs/177
index 10891550..1e59bd6c 100755
--- a/tests/xfs/177
+++ b/tests/xfs/177
@@ -39,6 +39,8 @@  _cleanup()
 
 # Modify as appropriate.
 _supported_fs xfs
+_fixed_by_kernel_commit f38a032b165d "xfs: fix I_DONTCACHE"
+
 _require_xfs_io_command "bulkstat"
 _require_scratch
 
diff --git a/tests/xfs/513 b/tests/xfs/513
index bfdfd4f6..85500af0 100755
--- a/tests/xfs/513
+++ b/tests/xfs/513
@@ -31,6 +31,9 @@  _cleanup()
 
 # real QA test starts here
 _supported_fs xfs
+_fixed_by_kernel_commit 237d7887ae72 \
+	"xfs: show the proper user quota options"
+
 _require_test
 _require_loop
 _require_xfs_io_command "falloc"
diff --git a/tests/xfs/539 b/tests/xfs/539
index 4bc52c1a..77b44c89 100755
--- a/tests/xfs/539
+++ b/tests/xfs/539
@@ -9,15 +9,18 @@ 
 # the same value as during the mount
 #
 # Regression test for commit:
-# xfs: Skip repetitive warnings about mount options
+# 92cf7d36384b xfs: Skip repetitive warnings about mount options
 
 . ./common/preamble
 _begin_fstest auto quick mount
 
 # Import common functions.
 
-_require_check_dmesg
 _supported_fs xfs
+_fixed_by_kernel_commit 92cf7d36384b \
+	"xfs: Skip repetitive warnings about mount options"
+
+_require_check_dmesg
 _require_scratch
 
 log_tag()
diff --git a/tests/xfs/542 b/tests/xfs/542
index 5c45eed7..1540541e 100755
--- a/tests/xfs/542
+++ b/tests/xfs/542
@@ -26,6 +26,9 @@  _cleanup()
 
 # real QA test starts here
 _supported_fs xfs
+_fixed_by_kernel_commit 5ca5916b6bc9 \
+	"xfs: punch out data fork delalloc blocks on COW writeback failure"
+
 _require_scratch_reflink
 _require_cp_reflink
 _require_xfs_io_command "cowextsize"