#64 par2cmdline-0.4: make check fails

open
Peter C
5
2014-08-24
2007-12-26
Steffen Dettmer
No

(this is a copy&paste from an email)

Hi!

I tried to build par2cmdline-0.4 on linux (SuSE 8.2, link 2.4.20, gcc
(GCC) 3.3 20030226) but make check fails in ./test3, 4 and 6:

--------------------------------------
Repairing two files using PAR 1.0 data
--------------------------------------
par2: reedsolomon.h:393: bool ReedSolomon<g>::GaussElim(CommandLine::NoiseLevel, unsigned int, unsigned int, g*, g*, unsigned int) [with g = Galois8]: Assertion `pivotvalue != 0' failed.
./test3: line 13: 16499 Abgebrochen ../par2 r testdata.par >../test3.log
ERROR: Reconstruction of two files using PAR 1.0 failed
FAIL: test3
--------------------------------------
Repairing two files using PAR 2.0 data
--------------------------------------
par2: reedsolomon.h:393: bool ReedSolomon<g>::GaussElim(CommandLine::NoiseLevel, unsigned int, unsigned int, g*, g*, unsigned int) [with g = Galois16]: Assertion `pivotvalue != 0' failed.
./test4: line 13: 16509 Abgebrochen ../par2 r testdata.par2 >../test4.log
ERROR: Reconstruction of two files using PAR 2.0 failed
FAIL: test4
-----------------------------------
Creating 100% PAR 2.0 recovery data
-----------------------------------
PASS: test5
--------------------------------------
Repairing 100% loss using PAR 2.0 data
--------------------------------------
par2: reedsolomon.h:393: bool ReedSolomon<g>::GaussElim(CommandLine::NoiseLevel, unsigned int, unsigned int, g*, g*, unsigned int) [with g = Galois16]: Assertion `pivotvalue != 0' failed.
./test6: line 14: 16527 Abgebrochen ../par2 r newtest >../test6.log
ERROR: Full Repair using PAR 2.0 failed
FAIL: test6
SKIP: posttest
=====================================================
3 of 6 tests failed
(2 tests were not run)
Please report to peterbclements@users.sourceforge.net
=====================================================

just in case it helps:

running test3 in gdb produces:

(gdb) set args r testdata.par
(gdb) directory ..
Source directories searched: /home/steffen/download/par2/par2cmdline-0.4/testdir/..:/home/steffen/download/par2/par2cmdline-0.4/testdir:$cdir:$cwd
Loading "testdata.par".
No new recovery volumes found
Loading "testdata.p01".
Loaded recovery volume 0
Loading "testdata.p02".
Loaded recovery volume 1

Verifying source files:

Target: "test-0.data" - found.
Target: "test-1.data" - missing.
Target: "test-2.data" - found.
Target: "test-3.data" - missing.
Target: "test-4.data" - found.
Target: "test-5.data" - found.
Target: "test-6.data" - found.
Target: "test-7.data" - found.
Target: "test-8.data" - found.
Target: "test-9.data" - found.

Scanning extra files:

Repair is required.
2 file(s) are missing.
8 file(s) are ok.
Repair is possible.
2 recovery files will be used to repair.

Computing Reed Solomon matrix.
Constructing: done.
par2: reedsolomon.h:393: bool ReedSolomon<g>::GaussElim(CommandLine::NoiseLevel, unsigned int, unsigned int, g*, g*, unsigned int) [with g = Galois8]: Assertion `pivotvalue != 0' failed.

Program received signal SIGABRT, Aborted.
0x40132691 in kill () from /lib/libc.so.6
(gdb) bt
#0 0x40132691 in kill () from /lib/libc.so.6
#1 0x40132415 in raise () from /lib/libc.so.6
#2 0x40133a50 in abort () from /lib/libc.so.6
#3 0x4012b9b2 in __assert_fail () from /lib/libc.so.6
#4 0x0805adcc in ReedSolomon<Galois<8, 285, unsigned char> >::GaussElim(CommandLine::NoiseLevel, unsigned, unsigned, Galois<8, 285, unsigned char>*, Galois<8, 285, unsigned char>*, unsigned) (this=0x80bd4c4, noiselevel=nlNormal, rows=2,
leftcols=10, leftmatrix=0x80ce048, rightmatrix=0x80cda28, datamissing=2)
at /usr/include/g++/bits/basic_ios.h:330
#5 0x08059a9b in ReedSolomon<Galois<8, 285, unsigned char> >::Compute(CommandLine::NoiseLevel) (this=0x80bd4c4, noiselevel=nlNormal) at reedsolomon.h:337
#6 0x08058ab2 in Par1Repairer::ComputeRSmatrix() (this=0x80bd448)
at par1repairer.cpp:1205
#7 0x0805464d in Par1Repairer::Process(CommandLine const&, bool) (
this=0x80bd448, commandline=@0x80bc490, dorepair=true)
at par1repairer.cpp:156
#8 0x08049fe2 in main (argc=3, argv=0xbffff0f4) at par2cmdline.cpp:87
#9 0x4011e8ae in __libc_start_main () from /lib/libc.so.6

I cannot print stack variables at #4 easily because of the code beeing in .h
file code (--> inline) gdb does not display redsolomon.h but basic_ios.h (some
std::string constructor or something).

I also tried the version of debian etch. The source TGZ is exactly the same but
they have three patches. Additionally, I needed to reduce the AC_PREQ (I just
have autoconf 1.57) and add some include for BLKGETSIZE64. Make check
fails, but at a different position (reedsolomon.h:393).

I also tried libpar2-0.2, but in par2cmdline.cpp everything is commented
out.

I also made several attempts to build gpar, but the dependencies are
really killing. There are heaps of libs needed. I was unable to install
e.g. gtkmm-2.12.0 because of more dependencies, and so on. Seems that
there is no end. I didn't got gtkmm working and I feel unconfortable
with its documentation. the atk/README is 0 byte long :-)).

Any suggestions how to build some `par2' or `xpar2' tool for linux?

Discussion