On 11.12.19 г. 12:40 ч., Qu Wenruo wrote: > [BUG] > When using btrfs-progs v5.4, btrfs/157 and btrfs/158 will fail: > > btrfs/157 1s ... - output mismatch (see xfstests/results//btrfs/157.out.bad) > --- tests/btrfs/157.out 2018-09-16 21:30:48.505104287 +0100 > +++ xfstests/results//btrfs/157.out.bad > 2019-12-10 15:35:43.112390076 +0000 > @@ -1,9 +1,9 @@ > QA output created by 157 > wrote 131072/131072 bytes at offset 0 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > +wrote 65536/65536 bytes at offset 22020096 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > ... > (Run 'diff -u xfstests/tests/btrfs/157.out xfstests/results//btrfs/157.out.bad' to see the entire diff) > btrfs/158 2s ... - output mismatch (see xfstests/results//btrfs/158.out.bad) > --- tests/btrfs/158.out 2018-09-16 21:30:48.505104287 +0100 > +++ xfstests/results//btrfs/158.out.bad > 2019-12-10 15:35:44.844388521 +0000 > @@ -1,9 +1,9 @@ > QA output created by 158 > wrote 131072/131072 bytes at offset 0 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > +wrote 65536/65536 bytes at offset 22020096 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > ... > (Run 'diff -u xfstests/tests/btrfs/158.out xfstests/results//btrfs/158.out.bad' to see the entire diff) > > [CAUSE] > This two tests use physical offset as golden output, while mkfs.btrfs > can do whatever it likes to arrange its chunk layout, thus physical > offset is never reliable. > > And btrfs-progs commit c501c9e3b816 ("btrfs-progs: mkfs: match devid > order to the stripe index") just changed the layout. > > So the output mismatch and failed. > > [FIX] > In fact, that btrfs-progs commit not only changed offset, but also the > device sequence. > > So we can't just simply remove the physical offset, but also need to use > proper helper to get both devid (as its device path) and physical offset > for corruption. > > As long as mkfs.btrfs still uses sequential devid, these tests should > handle future chunk layout change without problem. > > Reported-by: Filipe Manana <fdmanana@xxxxxxxx> > Signed-off-by: Qu Wenruo <wqu@xxxxxxxx> Tested-by: Nikolay Borisov <nborisov@xxxxxxxx>