diff mbox series

generic/095: don't silence fio error output

Message ID 20210202062253.24478-1-zlang@redhat.com (mailing list archive)
State New, archived
Headers show
Series generic/095: don't silence fio error output | expand

Commit Message

Zorro Lang Feb. 2, 2021, 6:22 a.m. UTC
This case print both fio stdout and stderr to .full file, that cause
we miss some unexpected failures when there's a bug. For example:

  file:io_u.c:1803, func=io_u error, error=Block device required

This's an regression issue we find on a downstream kernel, not in
upstream. So release unexpected fio error output to find more issues.

Signed-off-by: Zorro Lang <zlang@redhat.com>
---
 tests/generic/095 | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Brian Foster Feb. 3, 2021, 4:22 p.m. UTC | #1
On Tue, Feb 02, 2021 at 02:22:53PM +0800, Zorro Lang wrote:
> This case print both fio stdout and stderr to .full file, that cause
> we miss some unexpected failures when there's a bug. For example:
> 
>   file:io_u.c:1803, func=io_u error, error=Block device required
> 
> This's an regression issue we find on a downstream kernel, not in
> upstream. So release unexpected fio error output to find more issues.
> 
> Signed-off-by: Zorro Lang <zlang@redhat.com>
> ---

Seems reasonable:

Reviewed-by: Brian Foster <bfoster@redhat.com>

>  tests/generic/095 | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/generic/095 b/tests/generic/095
> index 9afaa761..30fe77a5 100755
> --- a/tests/generic/095
> +++ b/tests/generic/095
> @@ -98,8 +98,11 @@ _require_fio $fio_config
>  _scratch_mkfs >>$seqres.full 2>&1
>  _scratch_mount
>  
> +# There's a known EIO failure to report collisions between directio and buffered
> +# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
> +# at here.
> +$FIO_PROG $fio_config --ignore_error=,EIO --output=$seqres.full
>  echo "Silence is golden"
> -$FIO_PROG $fio_config >>$seqres.full 2>&1
>  
>  # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
>  # direct IO on the same file. On the other hand, this fio job has been proven
> -- 
> 2.29.2
>
Eryu Guan March 14, 2021, 11:36 a.m. UTC | #2
Hi Zorro,

On Tue, Feb 02, 2021 at 02:22:53PM +0800, Zorro Lang wrote:
> This case print both fio stdout and stderr to .full file, that cause
> we miss some unexpected failures when there's a bug. For example:
> 
>   file:io_u.c:1803, func=io_u error, error=Block device required
> 
> This's an regression issue we find on a downstream kernel, not in
> upstream. So release unexpected fio error output to find more issues.
> 
> Signed-off-by: Zorro Lang <zlang@redhat.com>
> ---
>  tests/generic/095 | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/generic/095 b/tests/generic/095
> index 9afaa761..30fe77a5 100755
> --- a/tests/generic/095
> +++ b/tests/generic/095
> @@ -98,8 +98,11 @@ _require_fio $fio_config
>  _scratch_mkfs >>$seqres.full 2>&1
>  _scratch_mount
>  
> +# There's a known EIO failure to report collisions between directio and buffered
> +# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
> +# at here.
> +$FIO_PROG $fio_config --ignore_error=,EIO --output=$seqres.full

I found that with this change, EIO is ignored and the return value of
fio command is 0 as expected, but the output breaks golden image and
fails the test.

[root@fedoravm xfstests]# ./check -s xfs_4k_reflink generic/095
SECTION       -- xfs_4k_reflink
RECREATING    -- xfs on /dev/mapper/testvg-lv1
FSTYP         -- xfs (debug)
PLATFORM      -- Linux/x86_64 fedoravm 5.11.0 #5 SMP Sun Feb 28 21:50:24 CST 2021
MKFS_OPTIONS  -- -f -f -b size=4k -m reflink=1,rmapbt=1 /dev/mapper/testvg-lv2
MOUNT_OPTIONS -- /dev/mapper/testvg-lv2 /mnt/scratch

generic/095 4s ... - output mismatch (see /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad)
    --- tests/generic/095.out   2018-02-25 15:15:00.097388035 +0800
    +++ /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad    2021-03-14 19:32:04.126884255 +0800
    @@ -1,2 +1,7 @@
     QA output created by 095
    +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
    +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
    +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
    +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
    +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
     Silence is golden

Did you hit the same failure? If so I think we should filter out this
message.

Thanks,
Eryu

>  echo "Silence is golden"
> -$FIO_PROG $fio_config >>$seqres.full 2>&1
>  
>  # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
>  # direct IO on the same file. On the other hand, this fio job has been proven
> -- 
> 2.29.2
Zorro Lang March 14, 2021, 3:49 p.m. UTC | #3
On Sun, Mar 14, 2021 at 07:36:32PM +0800, Eryu Guan wrote:
> Hi Zorro,
> 
> On Tue, Feb 02, 2021 at 02:22:53PM +0800, Zorro Lang wrote:
> > This case print both fio stdout and stderr to .full file, that cause
> > we miss some unexpected failures when there's a bug. For example:
> > 
> >   file:io_u.c:1803, func=io_u error, error=Block device required
> > 
> > This's an regression issue we find on a downstream kernel, not in
> > upstream. So release unexpected fio error output to find more issues.
> > 
> > Signed-off-by: Zorro Lang <zlang@redhat.com>
> > ---
> >  tests/generic/095 | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/generic/095 b/tests/generic/095
> > index 9afaa761..30fe77a5 100755
> > --- a/tests/generic/095
> > +++ b/tests/generic/095
> > @@ -98,8 +98,11 @@ _require_fio $fio_config
> >  _scratch_mkfs >>$seqres.full 2>&1
> >  _scratch_mount
> >  
> > +# There's a known EIO failure to report collisions between directio and buffered
> > +# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
> > +# at here.
> > +$FIO_PROG $fio_config --ignore_error=,EIO --output=$seqres.full
> 
> I found that with this change, EIO is ignored and the return value of
> fio command is 0 as expected, but the output breaks golden image and
> fails the test.
> 
> [root@fedoravm xfstests]# ./check -s xfs_4k_reflink generic/095
> SECTION       -- xfs_4k_reflink
> RECREATING    -- xfs on /dev/mapper/testvg-lv1
> FSTYP         -- xfs (debug)
> PLATFORM      -- Linux/x86_64 fedoravm 5.11.0 #5 SMP Sun Feb 28 21:50:24 CST 2021
> MKFS_OPTIONS  -- -f -f -b size=4k -m reflink=1,rmapbt=1 /dev/mapper/testvg-lv2
> MOUNT_OPTIONS -- /dev/mapper/testvg-lv2 /mnt/scratch
> 
> generic/095 4s ... - output mismatch (see /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad)
>     --- tests/generic/095.out   2018-02-25 15:15:00.097388035 +0800
>     +++ /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad    2021-03-14 19:32:04.126884255 +0800
>     @@ -1,2 +1,7 @@
>      QA output created by 095
>     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
>     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
>     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
>     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
>     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
>      Silence is golden
> 
> Did you hit the same failure? If so I think we should filter out this
> message.

Hmm... I never hit that. I don't think this patch can cause this error, can you
still reproduce it without this patch? The mmap operation from fio might get
some unexpected random arguments, you might find a fio bug :-P

Thanks,
Zorro

> 
> Thanks,
> Eryu
> 
> >  echo "Silence is golden"
> > -$FIO_PROG $fio_config >>$seqres.full 2>&1
> >  
> >  # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> >  # direct IO on the same file. On the other hand, this fio job has been proven
> > -- 
> > 2.29.2
>
Eryu Guan March 14, 2021, 4:02 p.m. UTC | #4
On Sun, Mar 14, 2021 at 11:49:20PM +0800, Zorro Lang wrote:
> On Sun, Mar 14, 2021 at 07:36:32PM +0800, Eryu Guan wrote:
> > Hi Zorro,
> > 
> > On Tue, Feb 02, 2021 at 02:22:53PM +0800, Zorro Lang wrote:
> > > This case print both fio stdout and stderr to .full file, that cause
> > > we miss some unexpected failures when there's a bug. For example:
> > > 
> > >   file:io_u.c:1803, func=io_u error, error=Block device required
> > > 
> > > This's an regression issue we find on a downstream kernel, not in
> > > upstream. So release unexpected fio error output to find more issues.
> > > 
> > > Signed-off-by: Zorro Lang <zlang@redhat.com>
> > > ---
> > >  tests/generic/095 | 5 ++++-
> > >  1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/tests/generic/095 b/tests/generic/095
> > > index 9afaa761..30fe77a5 100755
> > > --- a/tests/generic/095
> > > +++ b/tests/generic/095
> > > @@ -98,8 +98,11 @@ _require_fio $fio_config
> > >  _scratch_mkfs >>$seqres.full 2>&1
> > >  _scratch_mount
> > >  
> > > +# There's a known EIO failure to report collisions between directio and buffered
> > > +# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
> > > +# at here.
> > > +$FIO_PROG $fio_config --ignore_error=,EIO --output=$seqres.full
> > 
> > I found that with this change, EIO is ignored and the return value of
> > fio command is 0 as expected, but the output breaks golden image and
> > fails the test.
> > 
> > [root@fedoravm xfstests]# ./check -s xfs_4k_reflink generic/095
> > SECTION       -- xfs_4k_reflink
> > RECREATING    -- xfs on /dev/mapper/testvg-lv1
> > FSTYP         -- xfs (debug)
> > PLATFORM      -- Linux/x86_64 fedoravm 5.11.0 #5 SMP Sun Feb 28 21:50:24 CST 2021
> > MKFS_OPTIONS  -- -f -f -b size=4k -m reflink=1,rmapbt=1 /dev/mapper/testvg-lv2
> > MOUNT_OPTIONS -- /dev/mapper/testvg-lv2 /mnt/scratch
> > 
> > generic/095 4s ... - output mismatch (see /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad)
> >     --- tests/generic/095.out   2018-02-25 15:15:00.097388035 +0800
> >     +++ /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad    2021-03-14 19:32:04.126884255 +0800
> >     @@ -1,2 +1,7 @@
> >      QA output created by 095
> >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> >      Silence is golden
> > 
> > Did you hit the same failure? If so I think we should filter out this
> > message.
> 
> Hmm... I never hit that. I don't think this patch can cause this error, can you
> still reproduce it without this patch? The mmap operation from fio might get
> some unexpected random arguments, you might find a fio bug :-P

No, it's not reproducible without this patch, because...

> 
> Thanks,
> Zorro
> 
> > 
> > Thanks,
> > Eryu
> > 
> > >  echo "Silence is golden"
> > > -$FIO_PROG $fio_config >>$seqres.full 2>&1

The original behavior threw away all the fio output, so there was no
such failure. The patch in question made stderr visiable.

Thanks,
Eryu

> > >  
> > >  # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> > >  # direct IO on the same file. On the other hand, this fio job has been proven
> > > -- 
> > > 2.29.2
> >
Zorro Lang March 15, 2021, 12:56 a.m. UTC | #5
On Mon, Mar 15, 2021 at 12:02:14AM +0800, Eryu Guan wrote:
> On Sun, Mar 14, 2021 at 11:49:20PM +0800, Zorro Lang wrote:
> > On Sun, Mar 14, 2021 at 07:36:32PM +0800, Eryu Guan wrote:
> > > Hi Zorro,
> > > 
> > > On Tue, Feb 02, 2021 at 02:22:53PM +0800, Zorro Lang wrote:
> > > > This case print both fio stdout and stderr to .full file, that cause
> > > > we miss some unexpected failures when there's a bug. For example:
> > > > 
> > > >   file:io_u.c:1803, func=io_u error, error=Block device required
> > > > 
> > > > This's an regression issue we find on a downstream kernel, not in
> > > > upstream. So release unexpected fio error output to find more issues.
> > > > 
> > > > Signed-off-by: Zorro Lang <zlang@redhat.com>
> > > > ---
> > > >  tests/generic/095 | 5 ++++-
> > > >  1 file changed, 4 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/tests/generic/095 b/tests/generic/095
> > > > index 9afaa761..30fe77a5 100755
> > > > --- a/tests/generic/095
> > > > +++ b/tests/generic/095
> > > > @@ -98,8 +98,11 @@ _require_fio $fio_config
> > > >  _scratch_mkfs >>$seqres.full 2>&1
> > > >  _scratch_mount
> > > >  
> > > > +# There's a known EIO failure to report collisions between directio and buffered
> > > > +# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
> > > > +# at here.
> > > > +$FIO_PROG $fio_config --ignore_error=,EIO --output=$seqres.full
> > > 
> > > I found that with this change, EIO is ignored and the return value of
> > > fio command is 0 as expected, but the output breaks golden image and
> > > fails the test.
> > > 
> > > [root@fedoravm xfstests]# ./check -s xfs_4k_reflink generic/095
> > > SECTION       -- xfs_4k_reflink
> > > RECREATING    -- xfs on /dev/mapper/testvg-lv1
> > > FSTYP         -- xfs (debug)
> > > PLATFORM      -- Linux/x86_64 fedoravm 5.11.0 #5 SMP Sun Feb 28 21:50:24 CST 2021
> > > MKFS_OPTIONS  -- -f -f -b size=4k -m reflink=1,rmapbt=1 /dev/mapper/testvg-lv2
> > > MOUNT_OPTIONS -- /dev/mapper/testvg-lv2 /mnt/scratch
> > > 
> > > generic/095 4s ... - output mismatch (see /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad)
> > >     --- tests/generic/095.out   2018-02-25 15:15:00.097388035 +0800
> > >     +++ /root/workspace/xfstests/results//xfs_4k_reflink/generic/095.out.bad    2021-03-14 19:32:04.126884255 +0800
> > >     @@ -1,2 +1,7 @@
> > >      QA output created by 095
> > >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> > >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> > >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> > >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> > >     +job9: No I/O performed by mmap, perhaps try --debug=io option for details?
> > >      Silence is golden
> > > 
> > > Did you hit the same failure? If so I think we should filter out this
> > > message.
> > 
> > Hmm... I never hit that. I don't think this patch can cause this error, can you
> > still reproduce it without this patch? The mmap operation from fio might get
> > some unexpected random arguments, you might find a fio bug :-P
> 
> No, it's not reproducible without this patch, because...
> 
> > 
> > Thanks,
> > Zorro
> > 
> > > 
> > > Thanks,
> > > Eryu
> > > 
> > > >  echo "Silence is golden"
> > > > -$FIO_PROG $fio_config >>$seqres.full 2>&1
> 
> The original behavior threw away all the fio output, so there was no
> such failure. The patch in question made stderr visiable.

Oh, you're right. But I don't think this patch is the root cause of this error,
I just let error output visible, doesn't inject any new behaviors.

I've tested with this change on different systems, never hit this error, even on
latest upstream xfs with latest upstream fio:

# ./check generic/095
FSTYP         -- xfs (debug)
PLATFORM      -- Linux/x86_64 ibm-xxxxx-xx 5.12.0-rc2-xfs #6 SMP Mon Mar 15 00:02:03 CST 2021                                                                                               
MKFS_OPTIONS  -- -f -bsize=4096 /dev/mapper/testvg-scratchdev
MOUNT_OPTIONS -- -o context=system_u:object_r:root_t:s0 /dev/mapper/testvg-scratchdev /mnt/scratch                                                                                            

generic/095 39s ...  30s
Ran: generic/095
Passed all 1 tests

If you still can reproduce this error with lastest fio, I think you can
use "--debug=io" agrument to get more informations, then CC fio people to take
a look?

Thanks,
Zorro

> 
> Thanks,
> Eryu
> 
> > > >  
> > > >  # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> > > >  # direct IO on the same file. On the other hand, this fio job has been proven
> > > > -- 
> > > > 2.29.2
> > > 
>
diff mbox series

Patch

diff --git a/tests/generic/095 b/tests/generic/095
index 9afaa761..30fe77a5 100755
--- a/tests/generic/095
+++ b/tests/generic/095
@@ -98,8 +98,11 @@  _require_fio $fio_config
 _scratch_mkfs >>$seqres.full 2>&1
 _scratch_mount
 
+# There's a known EIO failure to report collisions between directio and buffered
+# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
+# at here.
+$FIO_PROG $fio_config --ignore_error=,EIO --output=$seqres.full
 echo "Silence is golden"
-$FIO_PROG $fio_config >>$seqres.full 2>&1
 
 # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
 # direct IO on the same file. On the other hand, this fio job has been proven