I have a file I am trying to create a par2 archive for.
I want to run par2 with the -qq option but it fails
with the following error:
par2: verificationpacket.cpp:63: void
verificationPacket::SetBlockHashAndCRC(unsigned int,
const MD5Hash&, unsigned int): Assertion `blocknumber <
blockcount' failed.
The failure happens quickly (less than a minute). The
file that causes the failure is huge, 1.3G, but I would
be happy to test any patches locally.
If I run the same command without the -qq then par2
runs successfully, although it takes a long time with a
1.3G file. ;-)
I have other (much smaller files) that do not cause
par2 to fail with the -qq option so there is something
special about that one file.
This is with the current Debian/unstable version of par
(0.4-1) on a Linux 2.6.9 system.
Omen
Logged In: YES
user_id=477089
I've looked at the source code and cannot see any way the -
qq option can possibly lead to the error you are getting.
Did you compile par2cmdline yourself, or obtain a compiled
copy from someone else?
Logged In: YES
user_id=58159
I am using the Debian/unstable version, 0.4-1.
I have a strace of when it fails, but it is pretty boring.
Lots of repeats of the read() call. Is there any debug info
I can provide?
Hmmm, on further investigation, I have a 1.2G file that
fails too. The really strange part is that when I created
that file (about 3 weeks ago) the par2 archive created just
fine. Sound like it is probably an error on my end or maybe
an issue with the latest Debian/unstable.
So, it looks like a problem on my end, somehow. Sorry about
the confusion.
Logged In: YES
user_id=477089
I'm afraid I don't know what you mean by "Debian/unstable
version, 0.4-1".
Exactly where did you get that version of par2cmdline from?
I suggest you download the source code from this web site,
and compile it yourself.
Logged In: YES
user_id=58159
"Debian/unstable version, 0.4-1" is the newest version of
par2 in the most cutting edge Debian. It is compiled from
the official 0.4 release.
I downloaded the latest version from sourceforge and
compiled it myself and it has the same problem, it fails if
I use -qq. Also, I take back what I said about it working 3
weeks ago. I realized this morning that all the par2 files
I created then were done without the -qq option. When I use
-qq par2 fails on my older files also.
Since small files work I decided to try to find the boundary
where it fails. Using different sized files I found that it
fails if the file is larger than 319 megs. However, I have
also found that if I increase the memory using -m then it
works for that same sized file:
par2 create -qq 320m -> FAIL
par2 create -qq -m64 320m -> WORKS
I also tried it on another computer and it fails there also.
Could you try this on your computer:
dd if=/dev/urandom of=320m bs=1M count=320
par2 create -qq 320m
Logged In: YES
user_id=477089
OK, I've managed to reproduce the problem, Now I just need
to determine why it is happening.
Logged In: YES
user_id=511621
I am getting the same error using the official 0.4 download,
nearly a year after the problem was listed.
uname -a:
Linux mjolnir.revragnarok.com 2.6.9-22.ELsmp #1 SMP Sat Oct
8 19:11:43 CDT 2005 i686 i686 i386 GNU/Linux
par2 --version:
Not enough command line arguments.
par2cmdline version 0.4, Copyright (C) 2003 Peter Brian
Clements.
<snip>
gcc --version:
gcc (GCC) 3.4.4 20050721 (Red Hat 3.4.4-2)
<snip>
Files I was par'ing (ls -alF):
-rw-r--r-- 1 root root 2359296000 Dec 10 04:08
12-10-2005_0314.1.dar
-rw-r--r-- 1 root root 24687780 Dec 10 04:12
12-10-2005_0314.2.dar
It worked fine without the qq. Working:
par2 c -r10 12-10-2005_0314.par2 12-10-2005_0314.*
Failed:
par2 c -r10 -q -q 12-10-2005_0314.par2 12-10-2005_0314.*