[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lzip-bug] lzip segv 32-bit
From: |
Antonio Diaz Diaz |
Subject: |
Re: [Lzip-bug] lzip segv 32-bit |
Date: |
Tue, 15 Nov 2016 13:26:01 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14 |
Hello,
Fisher, Charles J. (Top Echelon) wrote:
Why is this crashing?
Because of lack of RAM:
http://www.nongnu.org/lzip/manual/lzip_manual.html#Introduction
"The amount of memory required for compression is about 1 or 2 times the
dictionary size limit (1 if input file size is less than dictionary size
limit, else 2) plus 9 times the dictionary size really used."
I'm on Oracle's reroll of RedHat 5, 32-bit PAE kernel. My userspace
in 32-bit Linux is supposed to be 3 gigabytes. This is not enough
room?
Supposing that 'undo01.dat' is larger than 251 MB, the required RAM is
about 251 MB * 11 = 2761 MB, which I guess is more or less the maximum
your kernel can provide. Using a dictionary size larger than 251 MB or
so requires a 64 bit OS and up to 5 GiB of RAM.
fast_encoder.cc:106: warning: 'match_distance' may be used
uninitialized in this function
This is a false positive from the compiler not relevant to this case, as
you are not using the fast encoder (option -0).
# lzip -k -9 --dictionary-size 253M --match-length 273 undo01.dat
undo01.dat: Not enough memory. Try a smaller dictionary size.
lzip: Deleting output file 'undo01.dat.lz', if it exists.
# lzip -k -9 --dictionary-size 252M --match-length 273 undo01.dat
undo01.dat: Not enough memory. Try a smaller dictionary size.
lzip: Deleting output file 'undo01.dat.lz', if it exists.
# lzip -k -9 --dictionary-size 251M --match-length 273 undo01.dat
(runs)
I think the message is clear: Try a smaller dictionary size.
Regards,
Antonio.