Hilko Bengen
2011-May-11 07:37 UTC
[Libguestfs] hivex: Test failure for Perl, OCaml, Python bindings on sparc
On a Debian/unstable chroot environment on smetana.debian.org ("Linux smetana 2.6.32-5-sparc64-smp #1 SMP Tue Mar 8 01:00:11 UTC 2011 sparc64 GNU/Linux") node_set_value and node_values fail with a "Bad address" error, see below. I am going to make an attempt at debugging this tonight, any advice would be appreciated. Cheers, -Hilko ,---- | (sid)bengen at smetana:~/hivex.git/perl$ make check | make check-TESTS | make[1]: Entering directory `/home/bengen/hivex.git/perl' | make -f Makefile-pl | make[2]: Entering directory `/home/bengen/hivex.git/perl' | make[2]: Leaving directory `/home/bengen/hivex.git/perl' | make[2]: Entering directory `/home/bengen/hivex.git/perl' | PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t | t/005-pod.t .............. skipped: Test::Pod 1.00 required for testing POD | t/006-pod-coverage.t ..... skipped: Test::Pod::Coverage 1.00 required for testing POD | t/010-load.t ............. ok | t/020-open.t ............. ok | t/021-close.t ............ ok | t/200-write.t ............ ok | t/210-setvalue.t ......... 1/11 node_set_value: Bad address at t/210-setvalue.t line 46. | # Looks like you planned 11 tests but ran 5. | # Looks like your test exited with 14 just after 5. | t/210-setvalue.t ......... Dubious, test returned 14 (wstat 3584, 0xe00) | Failed 6/11 subtests | t/510-regedit-load.t ..... ok | t/550-regedit-export.t ... 1/8 node_values: Bad address at /home/bengen/hivex.git/perl/blib/lib/Win/Hivex/Regedit.pm line 518. | # Looks like you planned 8 tests but ran 6. | # Looks like your test exited with 14 just after 6. | t/550-regedit-export.t ... Dubious, test returned 14 (wstat 3584, 0xe00) | Failed 2/8 subtests | t/560-regedit-import.t ... 1/16 node_values: Bad address at /home/bengen/hivex.git/perl/blib/lib/Win/Hivex/Regedit.pm line 518. | # Looks like you planned 16 tests but ran 2. | # Looks like your test exited with 14 just after 2. | t/560-regedit-import.t ... Dubious, test returned 14 (wstat 3584, 0xe00) | Failed 14/16 subtests | t/570-regedit-import2.t .. ok | | Test Summary Report | ------------------- | t/210-setvalue.t (Wstat: 3584 Tests: 5 Failed: 0) | Non-zero exit status: 14 | Parse errors: Bad plan. You planned 11 tests but ran 5. | t/550-regedit-export.t (Wstat: 3584 Tests: 6 Failed: 0) | Non-zero exit status: 14 | Parse errors: Bad plan. You planned 8 tests but ran 6. | t/560-regedit-import.t (Wstat: 3584 Tests: 2 Failed: 0) | Non-zero exit status: 14 | Parse errors: Bad plan. You planned 16 tests but ran 2. | Files=11, Tests=30, 1 wallclock secs ( 0.18 usr 0.04 sys + 1.44 cusr 0.16 csys = 1.82 CPU) | Result: FAIL | Failed 3/11 test programs. 0/30 subtests failed. | make[2]: *** [test_dynamic] Error 255 | make[2]: Leaving directory `/home/bengen/hivex.git/perl' | FAIL: run-perl-tests | =================| 1 of 1 test failed | =================| make[1]: *** [check-TESTS] Error 1 | make[1]: Leaving directory `/home/bengen/hivex.git/perl' | make: *** [check-am] Error 2 `---- ,---- | (sid)bengen at smetana:~/hivex.git/python$ make check | make check-TESTS | make[1]: Entering directory `/home/bengen/hivex.git/python' | 010-import.py | 020-open.py | 021-close.py | 200-write.py | 210-setvalue.py | Traceback (most recent call last): | File "t/210-setvalue.py", line 44, in <module> | h.node_set_value (b, value1) | File "/home/bengen/hivex.git/python/hivex.py", line 130, in node_set_value | return libhivexmod.node_set_value (self._o, node, val) | RuntimeError: Bad address | FAIL: run-python-tests | =================| 1 of 1 test failed | =================| make[1]: *** [check-TESTS] Error 1 | make[1]: Leaving directory `/home/bengen/hivex.git/python' | make: *** [check-am] Error 2 `---- ,---- | (sid)bengen at smetana:~/hivex.git/ocaml$ make check | make check-TESTS | make[1]: Entering directory `/home/bengen/hivex.git/ocaml' | PASS: t/hivex_005_load | PASS: t/hivex_010_open | PASS: t/hivex_020_root | 01 non-existent file | 02 closed handle | 03 write to read-only file | 04 node_get_child node not found | PASS: t/hivex_100_errors | PASS: t/hivex_110_gc_handle | PASS: t/hivex_200_write | Fatal error: exception Hivex.Error("node_values", 9, "Bad address") | FAIL: t/hivex_300_fold | ==================| 1 of 7 tests failed | ==================| make[1]: *** [check-TESTS] Error 1 | make[1]: Leaving directory `/home/bengen/hivex.git/ocaml' | make: *** [check-am] Error 2 `----
Richard W.M. Jones
2011-May-11 08:51 UTC
[Libguestfs] hivex: Test failure for Perl, OCaml, Python bindings on sparc
On Wed, May 11, 2011 at 09:37:45AM +0200, Hilko Bengen wrote:> On a Debian/unstable chroot environment on smetana.debian.org ("Linux > smetana 2.6.32-5-sparc64-smp #1 SMP Tue Mar 8 01:00:11 UTC 2011 sparc64 > GNU/Linux") node_set_value and node_values fail with a "Bad address" > error, see below. > > I am going to make an attempt at debugging this tonight, any advice > would be appreciated.What is the C integer model of sparc64? I notice that we're storing the size_t (hive_value_t) values in Perl integers using newSViv. That's going to be a problem if Perl int is 32 bit, because those are 64 bit pointers. If that is the problem, the fix would be to replace newSViv with my_newSVll. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
Apparently Analagous Threads
- [hivex] Segfault for an integer value to node_set_value
- [PATCH] hivex: python: value_value no longer generates Unicode strings
- [hivex] [PATCH 0/6] Python fixes for node_set_value
- [PATCH] hivex: add hivex_set_value api call and perl bindings, tests
- [PATCH] hivex: add hivex_set_value api call and ocaml/perl bindings, tests