On 20 May 2015 01:25:03 BST, Qu Wenruo <[email protected]> wrote: >Yes, I also find the problem and already sent the fixing patch: >https://patchwork.kernel.org/patch/6411191/ > >The problem is that my previous check patch is too restrict, making DUP > >chunk with only 1 stripe invalid. > >Fixing patch will allow degraded chunk to exist and fix the bug. > >Thanks, >Qu > >-------- Original Message -------- >Subject: Re: [PATCH 4/4] btrfs-progs: Add extra chunk item check to >avoid btrfs-progs crash. >From: WorMzy Tykashi <[email protected]> >To: David Sterba <[email protected]>, Qu Wenruo ><[email protected]>, >[email protected] <[email protected]>, ><[email protected]> >Date: 2015年05月20日 00:30 > >> Hi guys, >> >> Following a bisect, it appears that this patch breaks fsck test 006: >> >> $ git checkout f146c40c65e0142b52418a0a1cbaf2808e658d76 >> HEAD is now at f146c40... btrfs-progs: Add extra chunk item check to >> avoid btrfs-progs crash. >> ...autogen, configure, make.. >> $ make test-fsck >> [TEST] fsck-tests.sh >> [TEST] 001-bad-file-extent-bytenr >> [TEST] 002-bad-transid >> parent transid verify failed on 29360128 wanted 9 found 755944791 >> parent transid verify failed on 29360128 wanted 9 found 755944791 >> Ignoring transid failure >> [TEST] 003-shift-offsets >> [TEST] 004-no-dir-index >> [TEST] 005-bad-item-offset >> [TEST] 006-bad-root-items >> failed: /home/wormzy/btrfs-progs-unstable/btrfs check --repair >test.img >> test failed for case 006-bad-root-items >> Makefile:169: recipe for target 'test-fsck' failed >> make: *** [test-fsck] Error 1 >> >> Does this test just need updating? >> >> Cheers, >> >> >> WorMzy >> >> On 13 May 2015 at 17:18, David Sterba <[email protected] >> <mailto:[email protected]>> wrote: >> >> On Wed, May 13, 2015 at 05:15:36PM +0800, Qu Wenruo wrote: >> > Adds extra check when reading a chunk item: >> > 1) Check chunk type. >> > Don't allow any unsupported type/profile bit. >> > >> > 2) Check num_stripes >> > Any chunk item should contain at least one stripe. >> > For system chunk, the chunk item size(calculated by >btrfs_stripe size * >> > (num_stripes - 1) + btrfs_chunk size) should not exceed >> > BTRFS_SYSTEM_CHUNK_SIZE(2048). >> > For normal chunk, the chunk item size(calculated) should match >the chunk >> > item size. >> > >> > 3) Check num_stripes/sub_stripes against chunk profile. >> > Num_stripes/sub_stripes must meet its lower limit for its chunk >profile. >> > >> > Reported-by: Lukas Lueg <[email protected] ><mailto:[email protected]>> >> > Signed-off-by: Qu Wenruo <[email protected] ><mailto:[email protected]>> >> >> Applied, thanks. >> -- >> To unsubscribe from this list: send the line "unsubscribe >> linux-btrfs" in >> the body of a message to [email protected] >> <mailto:[email protected]> >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >>
Thanks Qu, I missed that patch. Cheers, WorMzy -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
