selmf / unarr

A decompression library for rar, tar, zip and 7z archives
GNU Lesser General Public License v3.0
73 stars 13 forks source link

When un7zip size of 100GB.7z and 10GB.7z files report an error :'unarr: No valid RAR, ZIP, 7Z or TAR archive' #25

Open haoyutc opened 2 years ago

haoyutc commented 2 years ago

Use dd create 1GB 10GB 100GB file dd if=/dev/random of=data1GB.bin bs=40m count=25 dd if=/dev/random of=data10GB.bin bs=400m count=25 dd if=/dev/random of=data100GB.bin bs=4000m count=25 and use command '7z a' archive to data1GB.7z data10GB.7z data100GB.7z When un7zip size of 100GB.7z and 10GB.7z files report an error :'unarr: No valid RAR, ZIP, 7Z or TAR archive' But, un7zip size under 1GB file successfully!!!

Last,I test 2GB / 3GB / 4GB /5GB ,only 2GB file success, and above 2GB file failed!

OS : macOS 12.4 GOVERSION="go1.18.3"

https://github.com/gen2brain/go-unarr/issues/32

selmf commented 2 years ago

The 7z lzma-sdk is limited to 2GiB when running on a 32 bit system but should have no problems processing larger files when running on 64bit systems. Since you use macOS 12.4, it is save to assume you are running a 64bit CPU.

I am not familiar with the build process go-unarr uses, but since it is a custom build my guess is that large file support is not enabled.

More information is available on Wikipedia.

@gen2brain are you setting _FILE_OFFSET_BITS=64 in the C flags for Unix/MingW builds?

gen2brain commented 2 years ago

@selfm Thanks for the info, that is probably the issue, I did add defines I found in the old Makefile that was Windows only if I remember correctly. I will check when I get to a computer.

gen2brain commented 2 years ago

Fixed in https://github.com/gen2brain/go-unarr/commit/db3833a5faf2a3539c3ee4a0300e0ea38109daf3. Thanks.