Menu

#37 par2 create -qq fails on certain files

Verified
open-accepted
Peter C
5
2004-12-16
2004-12-15
Omen Wild
No

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

Discussion

  • Peter C

    Peter C - 2004-12-15

    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?

     
  • Omen Wild

    Omen Wild - 2004-12-15

    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.

     
  • Peter C

    Peter C - 2004-12-15

    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.

     
  • Omen Wild

    Omen Wild - 2004-12-15

    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

     
  • Peter C

    Peter C - 2004-12-16
    • milestone: --> Verified
    • status: open --> open-accepted
     
  • Peter C

    Peter C - 2004-12-16

    Logged In: YES
    user_id=477089

    OK, I've managed to reproduce the problem, Now I just need
    to determine why it is happening.

     
  • Aaron D. Marasco

    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.*

     

Log in to post a comment.