[bug report] erofs-utils: Compression with -Eall-fragments segfaults on 1.8.2

Gao Xiang hsiangkao at linux.alibaba.com
Sat Oct 12 15:34:56 AEDT 2024



On 2024/10/12 10:05, Gao Xiang wrote:
> Hi David,
> 
> On 2024/10/12 04:22, David Michael wrote:
>> Hi,
>>
>> Version 1.8.2 has a reproducible segfault with "-E all-fragments"
>> (testing on Fedora 40).  When compressing the install image, it
>> consistently hangs on a firmware file:
>>
>>> sudo dnf -y install erofs-utils
>>> wget https://dl.fedoraproject.org/pub/fedora/linux/releases/40/Everything/x86_64/os/images/install.img
>>> sudo mount install.img /mnt
>>> sudo mkfs.erofs -z zstd -E all-fragments erofs.img /mnt
>>
>> If you isolate just that firmware directory instead of the whole
>> image, it will segfault:
>>
>>> mkfs.erofs -z zstd -E all-fragments erofs.img /mnt/usr/lib/firmware/nvidia/ga102/gsp
>>
>> It happens with all compressors I've tried, but adding "dedupe" works
>> around it.  Is there any change I should test?  Let me know if you
>> need additional information.
> 
> Thanks for the report, I will look into that.

I've submited a fix for this,
https://lore.kernel.org/r/20241012035213.3729725-1-hsiangkao@linux.alibaba.com

The original one is a SquashFS xz image:
Compression xz
         Dictionary size 131072
         Filters selected: x86
Block size 131072
Inodes are compressed
Data is compressed
Fragments are compressed
..

so the results are:
618008576 install.img
621953024 install.erofs (mkfs.erofs -zlzma -C131072 -Eall-fragments,ztailpacking -T0)

Since EROFS doesn't support metadata compression for now,
the difference is just out of compressed metadata.

Thanks,
Gao Xiang

> 
> Thanks,
> Gao Xiang
> 
>>
>> Thanks.
>>
>> David
>>
>> Originally reported in: https://bugzilla.redhat.com/2318138
> 



More information about the Linux-erofs mailing list