Focal/xfstests
=====

"pre-original"/original/patched kernel versions:
        
        $ grep -h ^PLATFORM xfstests.log.* | sort -u
        PLATFORM      -- Linux/s390x mfo-s390x-focal 5.4.0-52-generic 
#57+test20201026b1 SMP Mon Oct 26 19:12:47 -03 2020
        PLATFORM      -- Linux/s390x mfo-s390x-focal 5.4.0-52-generic 
#57+test20201028b1 SMP Wed Oct 28 11:21:07 -03 2020
        PLATFORM      -- Linux/s390x mfo-s390x-focal 5.4.0-52-generic 
#57-Ubuntu SMP Thu Oct 15 10:52:40 UTC 2020

In Focal there are 8 regressions between master/bionic-updates and
master-next/not-yet-bionic-proposed (i.e., caused by other 13 btrfs
patches; _not_ this patchset.)

However, there are 0 regressions between master-next and master-next +
this patchset.  So, this patchset is good.


"pre-Original" kernel (master/bionic-updates)
---

        $ VERSION='5.4.0-52-generic #57-Ubuntu'

Number of runs:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep -c Failures:
        9

        $ RUNS=9

Consistent fail set:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep ^Failures: | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq -c | sort | grep 
-w $RUNS
              9 btrfs/153
              9 btrfs/200
              9 btrfs/204
              9 btrfs/205
              9 btrfs/213
              9 btrfs/220
              9 btrfs/221
              9 btrfs/222
              9 btrfs/226
              9 generic/260
              9 generic/301
              9 generic/484
              9 generic/610
 
Flaky fail set:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep ^Failures: | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq -c | sort | grep 
-w -v $RUNS
              1 btrfs/010
              1 generic/074
              1 generic/127
              1 generic/142
              1 generic/143
              1 generic/198
              1 generic/207
              1 generic/208
              1 generic/209
              1 generic/214
              1 generic/215
              1 generic/240
              1 generic/241
              1 generic/246
              1 generic/371
              2 generic/286
              2 generic/465
              3 generic/166
              3 generic/564
              4 generic/133
              5 generic/175
              7 generic/247
              7 generic/475

Original kernel (master-next)
---

        $ VERSION='5.4.0-52-generic #57+test20201028b1'

Number of runs:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep -c Failures:
        13                 

        $ RUNS=13

Consistent fail set:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep ^Failures: | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq -c | sort | grep 
-w $RUNS
             13 btrfs/153  
             13 btrfs/200  
             13 btrfs/204  
             13 btrfs/205  
             13 btrfs/213  
             13 btrfs/220  
             13 btrfs/221  
             13 btrfs/222  
             13 btrfs/226
             13 generic/260
             13 generic/286     << Regression; failed 2/9 in pre-original 
kernel.
             13 generic/301
             13 generic/465     << Regression; failed 2/9 in pre-original 
kernel.
             13 generic/484
             13 generic/610

Flaky fail set:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep ^Failures: | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq -c | sort | grep 
-w -v $RUNS
              1 btrfs/001  
              1 btrfs/057  
              1 btrfs/058  
              1 btrfs/059  
              1 btrfs/060  
              1 btrfs/061  
              1 btrfs/062  
              1 btrfs/063  
              1 btrfs/064  
              1 btrfs/065  
              1 btrfs/066
              1 btrfs/067  
              1 btrfs/068  
              1 btrfs/069  
              1 btrfs/070  
              1 btrfs/071  
              1 btrfs/072  
              1 btrfs/073  
              1 btrfs/074  
              1 btrfs/075  
              1 btrfs/076  
              1 btrfs/077  
              1 btrfs/078  
              1 btrfs/079  
              1 btrfs/081         
              1 btrfs/189
              1 generic/090
              1 generic/118
              1 generic/119
              1 generic/298
              1 generic/321
              1 generic/371
              1 generic/483
              1 generic/510
              1 generic/511
              1 generic/512
              1 generic/517
              1 generic/588
              1 generic/589
              1 generic/590
              1 generic/592
              1 generic/593
              2 btrfs/037
              2 btrfs/038
              2 btrfs/039
              2 btrfs/040
              2 btrfs/041
              2 btrfs/042
              2 btrfs/043
              2 btrfs/044
              2 btrfs/045
              2 btrfs/046
              2 btrfs/047
              2 btrfs/048
              2 btrfs/049
              2 btrfs/050
              2 btrfs/051
              2 btrfs/052
              2 btrfs/053
              2 btrfs/054
              2 btrfs/056
              2 generic/502
              2 generic/509
              2 generic/518
              2 generic/579
              2 generic/580
              2 generic/582
              2 generic/583
              2 generic/584
              2 generic/585
              3 btrfs/030
              3 btrfs/031
              3 btrfs/032
              3 btrfs/033
              3 btrfs/034
              3 btrfs/035
              3 btrfs/036
              3 btrfs/055
              3 generic/520
              3 generic/569
              3 generic/570
              3 generic/572
              3 generic/573
              3 generic/574
              3 generic/575
              3 generic/576
              3 generic/577
              4 btrfs/026
              4 btrfs/027
              4 btrfs/028
              4 btrfs/029
              4 btrfs/210
              4 btrfs/211
              4 btrfs/212
              4 btrfs/214
              4 btrfs/215
              4 btrfs/224
              4 generic/015
              4 generic/018
              4 generic/027
              4 generic/029
              4 generic/030
              4 generic/032
              4 generic/033
              4 generic/034
              4 generic/322
              4 generic/563
              4 generic/565
              4 generic/566
              4 generic/567
              5 btrfs/201
              5 btrfs/202
              5 btrfs/203
              5 btrfs/209
              5 generic/501
              5 generic/562
              6 generic/166
             10 generic/475     << Not regression; failed 7/9 in pre-original 
kernel.
             12 btrfs/010       << Regression; failed 1/9 in pre-original 
kernel.
             12 generic/074     << Regression; failed 1/9 in pre-original 
kernel.
             12 generic/133     << Regression; failed 4/9 in pre-original 
kernel.
             12 generic/142     << Regression; failed 1/9 in pre-original 
kernel.
             12 generic/143     << Regression; failed 1/9 in pre-original 
kernel.
             12 generic/175     << Regression; failed 5/9 in pre-original 
kernel.

Patched kernel (master-next + patchset)
---

        $ VERSION='5.4.0-52-generic #57+test20201026b1'

Number of runs:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep -c Failures:
        16

        $ RUNS=16

Consistent fail set:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep ^Failures: | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq -c | sort | grep 
-w $RUNS
             16 btrfs/153
             16 btrfs/200
             16 btrfs/204
             16 btrfs/205
             16 btrfs/213
             16 btrfs/220
             16 btrfs/221
             16 btrfs/222
             16 btrfs/226
             16 generic/260
             16 generic/286
             16 generic/301
             16 generic/465
             16 generic/484
             16 generic/610

                No regressions.
                
Flaky fail set:

        $ grep -h -e ^Fail -e ^PLATFORM xfstests.log.* | grep -A1 "$VERSION" | 
grep ^Failures: | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq -c | sort | grep 
-w -v $RUNS
              1 btrfs/028
              1 generic/119
              1 generic/224
              1 generic/225
              1 generic/297
              2 generic/371
              7 generic/166
             10 btrfs/010
             10 generic/074
             10 generic/142
             10 generic/143
             13 generic/133
             13 generic/175
             14 generic/475

                No regressions.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1902254

Title:
  Bionic: btrfs: kernel BUG at /build/linux-
  eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233!

Status in linux package in Ubuntu:
  Fix Committed
Status in linux source package in Bionic:
  In Progress
Status in linux source package in Focal:
  In Progress
Status in linux source package in Groovy:
  In Progress

Bug description:
  [Impact]

   * Users of btrfs started hitting a kernel BUG() (below)
     after upgrade from 4.15.0-99.100 to 4.15.0-109.110,
     which has 55 btrfs changes.

       kernel BUG at /build/linux-eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233!
       ...
       Krnl PSW : 00000000be9cb874 00000000ef3786e8 
(btrfs_set_item_key_safe+0x152/0x1c0 [btrfs])
       ...
       [...] Call Trace:
       [...] btrfs_set_item_key_safe+0x11c/0x1c0 [btrfs])
       [...] __btrfs_drop_extents+0xb5a/0xda8 [btrfs]
       [...] btrfs_log_changed_extents+0x35c/0xaf0 [btrfs]
       [...] btrfs_log_inode+0x9ee/0x1080 [btrfs]
       [...] btrfs_log_inode_parent+0x224/0xa10 [btrfs]
       [...] btrfs_log_dentry_safe+0x80/0xa8 [btrfs]
       [...] btrfs_sync_file+0x392/0x550 [btrfs]
       [...] do_fsync+0x5e/0x90
       [...] SyS_fdatasync+0x32/0x48
       [...] system_call+0xd8/0x2c8

       $ git log --oneline Ubuntu-4.15.0-99.100..Ubuntu-4.15.0-109.110 -- 
fs/btrfs/ | wc -l
       55

   * The error happens at random moments, regardless of a
     particular activity/load. Workaround is to downgrade.

  [Fix]

   * This BUG()/function is addressed in patch 4/4 [1] of series
     'btrfs: Enhanced runtime defence against fuzzed images' [2],
     after issues in the real world, not just crafted fs images:
     'one internal report has hit one BUG_ON() with real world fs'
   
       kernel BUG at fs/btrfs/ctree.c:3188!
       ...
       RIP: 0010:btrfs_set_item_key_safe+0x16c/0x180
   
   * The patch/set [3] is applied in v5.10-rc1 and Ubuntu Unstable:
     - d16c702fe4f2 btrfs: ctree: check key order before merging tree blocks
     - 07cce5cf3b48 btrfs: extent-tree: kill the BUG_ON() in 
insert_inline_extent_backref()
     - 1c2a07f598d5 btrfs: extent-tree: kill BUG_ON() in __btrfs_free_extent()
     - f98b6215d7d1 btrfs: extent_io: do extra check for extent buffer read 
write functions
   
  [Test Case]

   * There is working synthetic reproducer for this issue,
     which is hard to reproduce as reported in commit [4]
     that introduces debugging for the issue.
     
   * Regression tests with xfstests and stress-ng shows
     no regressions between un/patched kernels.

  [Other Info]

   * Trivial backports (only refreshing a few context lines)
     with 3 more dependency patches on Bionic and 1 on Focal.
     And Bionic needed one extra hunk to '#include' a header.
     Groovy all apply cleanly.

  [1] https://lore.kernel.org/linux-btrfs/20200819063550.62832-5-...@suse.com/
  [2] https://lore.kernel.org/linux-btrfs/20200819063550.62832-1-...@suse.com/
  [3] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d16c702fe4f274bd77b47d3ab737eadcf24e0b93
  [4] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c15d41016dc886cc011e3854d855e219759ae68

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1902254/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to