[PATCH] erofs-utils: fix battach on full buffer block

胡玮文 sehuww at mail.scut.edu.cn
Thu Jan 21 17:07:38 AEDT 2021


Hi Xiang,

On Wed, Jan 20, 2021 at 01:12:16PM +0800, Gao Xiang wrote:
> Hi Weiwen,
> 
> On Wed, Jan 20, 2021 at 12:57:39PM +0800, 胡玮文 wrote:
> > 
> > > 在 2021年1月19日,23:43,Gao Xiang <hsiangkao at redhat.com> 写道:
> > > 
> > > Hi Weiwen,
> > > 
> > >> On Tue, Jan 19, 2021 at 02:02:56PM +0800, 胡玮文 wrote:
> > >> Hi Xiang,
> > >> 
> > >> After further investgate, this bug will not reveal in any released version of
> > >> mkfs.erofs. Previous patch v5 [1] will map all allocated bb when erofs_mapbh()
> > >> is called on an already mapped bb, which triggers this bug. before that patch,
> > >> under the same condition, __erofs_battach() will only be called on bb which is
> > >> not mapped, thus no need to update `tail_blkaddr'.
> > > 
> > > Good to know this, thanks! I haven't looked into that (I will test it this
> > > weekend.) IMO, although this is not a regression, yet it seems it's potential
> > > harmful if we didn't notice this... So I think a proper testcase is still
> > > useful to look after this... If you have extra time, could you help on it?
> > 
> > Hi Xiang,
> > 
> > I’m working on this. I have written a test case for this. And I’m also working on setting up GitHub actions to run tests automatically. So far, I’ve got uncompressed tests works, but when lz4 is enable, all test (except 001) fail. I have not found out why. You may see my progress at https://github.com/huww98/erofs-utils/tree/experimental-tests. I will send patches once everything is sorted out.
> 
> It would be better to know which kernel version github action is used (at least
> it seems no good if version is < 5.4)? also could you confirm the lz4 version
> as well (lz4-1.9.3)? if erofsfuse is used, specify "FSTYP=erofsfuse make check"
> to test it.

I've verified kernel version is 5.4.0-1032-azure for ubuntu-20.04, and erofs
mount succeeded. for lz4, I'm installing v1.9.3 manually from source. I haven't
tried fuse, will give it a try later. 

> The temporary results are in "tests/results/", could you also check and debug
> it? (please kindly confirm the testcases work well on your local computer,
> since such testcase is still WIP, I'm not sure if it has some running issues
> as well)

I've downloaded "tests/results/" and it's test 007 (check for bad lz4 versions)
that fails with output "test LZ4_compress_HC_destSize(1048576) error (4098 <
4116)". And it's the same error on my PC. Investigating.

BTW, why not use a more meaningful name for each test rather than a sequence
number?

Hu Weiwen
 
> > 
> > > Also, without the detail of this, I think the fix might be folded into
> > > the original patchset (could you resend it?). In addition, I think after
> > 
> > You mean add a new commit [PATCH v6 3/3], or merge it into [PATCH v7 2/2]? I send it as a separate patch set because it may be merged independent of the cache.c optimization.
> 
> Resend v7 and fold it into [v7 2/2] would be better...
> 
> > 
> > > last_mapped_block is introduced, we might not need tail_blkaddr anymore,
> > > not sure. But I'm very cautious about this in case of introducing any
> > > new regression...
> > 
> > I think we still need it, because already mapped bb may be dropped, last_map_block does not always reflect tail_blkaddr.
> 
> Okay, that makes sense...
> 
> Thanks,
> Gao Xiang
> 
> > 
> > Hu Weiwen
> > 
> > > Thanks,
> > > Gao Xiang
> > > 
> > >> 
> > >> [1]: https://lore.kernel.org/linux-erofs/20210118123431.22533-1-sehuww@mail.scut.edu.cn/
> > >> 
> > >> Hu Weiwen
> > >> 



More information about the Linux-erofs mailing list