Skip Menu |

This queue is for tickets about the Glib-Object-Introspection CPAN distribution.

Report information
The Basics
Id: 98463
Status: resolved
Priority: 0/
Queue: Glib-Object-Introspection

People
Owner: Nobody in particular
Requestors: DDICK [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.024
Fixed in: (no value)



Subject: Test failures on PPC - EPEL for Redhat 7
Hi all, I'm trying to build Glib-Object-Introspection for EPEL7 https://bugzilla.redhat.com/show_bug.cgi?id=1121365 However, i'm having difficulties getting this package to pass it's test suite on PPC. A build attempt for PPC can be seen at the below link https://kojipkgs.fedoraproject.org//work/tasks/9687/7489687/build.log I've asked for and got access to a PPC node from Redhat, so i can gather debug if required. Cheers Dave
Subject: Re: [rt.cpan.org #98463] Test failures on PPC - EPEL for Redhat 7
Date: Sat, 30 Aug 2014 16:32:19 +0200
To: bug-Glib-Object-Introspection [...] rt.cpan.org
From: Torsten Schoenfeld <kaffeetisch [...] gmx.de>
Thanks for the report. All the failures seem to have in common that they involve "int" arguments or return values which will probably be mapped to 64 bit big-endian integers on ppc64. We had a related bug in this area that was fixed a while ago, but it uses mechanisms only available with gobject-introspection >= 1.32.0. What version is the builder running? (Check with 'pkg-config --modversion gobject-introspection-1.0'.) Let's focus on the arrays.t failure first then. To rule out problems in the input conversion, please run the test under a debugger with a breakpoint set for regress_test_array_int_in. Then check whether the input values are correct and that the return value is computed normally. On my system, this looks like this: # LD_LIBRARY_PATH=build gdb --args perl t/arrays.t [...] (gdb) b regress_test_array_int_in Function "regress_test_array_int_in" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (regress_test_array_int_in) pending. (gdb) r Starting program: /opt/perlbrew/perls/perl-5.20.0/bin/perl t/arrays.t [...] Breakpoint 1, regress_test_array_int_in (n_ints=3, ints=0x7a7800) at /usr/share/gobject-introspection-1.0/tests/regress.c:599 599 int i, sum = 0; (gdb) p n_ints $1 = 3 (gdb) p ints[0] $2 = 1 (gdb) p ints[1] $3 = 2 (gdb) p ints[2] $4 = 3 (gdb) n 600 for (i = 0; i < n_ints; i++) (gdb) n 601 sum += ints[i]; (gdb) n 600 for (i = 0; i < n_ints; i++) (gdb) n 601 sum += ints[i]; (gdb) n 600 for (i = 0; i < n_ints; i++) (gdb) n 601 sum += ints[i]; (gdb) n 600 for (i = 0; i < n_ints; i++) (gdb) n 602 return sum; (gdb) p sum $5 = 6 (gdb)
On Sun Aug 31 00:32:30 2014, TSCH wrote: Show quoted text
> Thanks for the report. All the failures seem to have in common that > they involve "int" arguments or return values which will probably be > mapped to 64 bit big-endian integers on ppc64. We had a related bug in > this area that was fixed a while ago, but it uses mechanisms only > available with gobject-introspection >= 1.32.0. What version is the > builder running? (Check with 'pkg-config --modversion > gobject-introspection-1.0'.) > > Let's focus on the arrays.t failure first then. To rule out problems in > the input conversion, please run the test under a debugger with a > breakpoint set for regress_test_array_int_in. Then check whether the > input values are correct and that the return value is computed normally. > On my system, this looks like this: > > # LD_LIBRARY_PATH=build gdb --args perl t/arrays.t > [...] > (gdb) b regress_test_array_int_in > Function "regress_test_array_int_in" not defined. > Make breakpoint pending on future shared library load? (y or [n]) y > Breakpoint 1 (regress_test_array_int_in) pending. > (gdb) r > Starting program: /opt/perlbrew/perls/perl-5.20.0/bin/perl t/arrays.t > [...] > Breakpoint 1, regress_test_array_int_in (n_ints=3, ints=0x7a7800) > at /usr/share/gobject-introspection-1.0/tests/regress.c:599 > 599 int i, sum = 0; > (gdb) p n_ints > $1 = 3 > (gdb) p ints[0] > $2 = 1 > (gdb) p ints[1] > $3 = 2 > (gdb) p ints[2] > $4 = 3 > (gdb) n > 600 for (i = 0; i < n_ints; i++) > (gdb) n > 601 sum += ints[i]; > (gdb) n > 600 for (i = 0; i < n_ints; i++) > (gdb) n > 601 sum += ints[i]; > (gdb) n > 600 for (i = 0; i < n_ints; i++) > (gdb) n > 601 sum += ints[i]; > (gdb) n > 600 for (i = 0; i < n_ints; i++) > (gdb) n > 602 return sum; > (gdb) p sum > $5 = 6 > (gdb)
Thanks for the speedy reply. Output follows; $ pkg-config --modversion gobject-introspection-1.0 1.38.0 $ LD_LIBRARY_PATH=build gdb --args perl -Iblib/lib -Iblib/arch t/arrays.t [...] (gdb) b regress_test_array_int_in Function "regress_test_array_int_in" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (regress_test_array_int_in) pending. (gdb) r Starting program: /usr/bin/perl -Iblib/lib -Iblib/arch t/arrays.t [...] Breakpoint 1, regress_test_array_int_in (n_ints=0, ints=0x10054120) at /usr/share/gobject-introspection-1.0/tests/regress.c:599 599 int i, sum = 0; (gdb) p n_ints $1 = 0 (gdb) p ints[0] $2 = 1 (gdb) p ints[1] $3 = 2 (gdb) p ints[2] $4 = 3 (gdb) n 600 for (i = 0; i < n_ints; i++) (gdb) n 602 return sum; (gdb) p sum $5 = 0 (gdb)
Subject: Re: [rt.cpan.org #98463] Test failures on PPC - EPEL for Redhat 7
Date: Mon, 08 Sep 2014 22:32:31 +0200
To: bug-Glib-Object-Introspection [...] rt.cpan.org
From: Torsten Schoenfeld <kaffeetisch [...] gmx.de>
On 30.08.2014 23:40, David Dick via RT wrote: Show quoted text
> Breakpoint 1, regress_test_array_int_in (n_ints=0, ints=0x10054120) at /usr/share/gobject-introspection-1.0/tests/regress.c:599 > 599 int i, sum = 0; > (gdb) p n_ints > $1 = 0
Aha, so we have a problem with the inbound array length arg. Please try again with the ppc64-fixes branch: <https://git.gnome.org/browse/perl-Glib-Object-Introspection/log/?h=ppc64-fixes>, <https://git.gnome.org/browse/perl-Glib-Object-Introspection/snapshot/ppc64-fixes.zip>.
On Tue Sep 09 06:32:42 2014, TSCH wrote: Show quoted text
> On 30.08.2014 23:40, David Dick via RT wrote:
> > Breakpoint 1, regress_test_array_int_in (n_ints=0, ints=0x10054120) > > at /usr/share/gobject-introspection-1.0/tests/regress.c:599 > > 599 int i, sum = 0; > > (gdb) p n_ints > > $1 = 0
> > Aha, so we have a problem with the inbound array length arg. Please > try > again with the ppc64-fixes branch: > <https://git.gnome.org/browse/perl-Glib-Object- > Introspection/log/?h=ppc64-fixes>, > <https://git.gnome.org/browse/perl-Glib-Object- > Introspection/snapshot/ppc64-fixes.zip>.
This is better... $ make test cp build/IFiles.pm blib/arch/Glib/Object/Introspection/Install/Files.pm cp lib/Glib/Object/Introspection.pm blib/lib/Glib/Object/Introspection.pm [ XS GObjectIntrospection.xs ] [ CC GObjectIntrospection.c ] Running Mkbootstrap for Glib::Object::Introspection () chmod 644 Introspection.bs rm -f blib/arch/auto/Glib/Object/Introspection/Introspection.so [ LD blib/arch/auto/Glib/Object/Introspection/Introspection.so ] chmod 755 blib/arch/auto/Glib/Object/Introspection/Introspection.so cp Introspection.bs blib/arch/auto/Glib/Object/Introspection/Introspection.bs chmod 644 blib/arch/auto/Glib/Object/Introspection/Introspection.bs LD_LIBRARY_PATH=:build PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-basic-types.t ............ ok t/arg-checks.t ................ ok t/arrays.t .................... ok t/boxed.t ..................... ok t/cairo-integration.t ......... ok t/callbacks.t ................. 1/25 # Failed test at t/callbacks.t line 14. # got: '2' # expected: '23' # Failed test at t/callbacks.t line 16. # got: '-1138286488' # expected: '23' # Failed test at t/callbacks.t line 17. # got: '-1138286488' # expected: '23' # Failed test at t/callbacks.t line 18. # got: '366961760' # expected: '46' # Failed test at t/callbacks.t line 22. # got: '876071792' # expected: '23' # Failed test at t/callbacks.t line 26. # got: '876069584' # expected: '23' # Looks like you failed 6 tests of 25. t/callbacks.t ................. Dubious, test returned 6 (wstat 1536, 0x600) Failed 6/25 subtests t/closures.t .................. ok t/constants.t ................. ok t/enums.t ..................... Failed 3/4 subtests t/hashes.t .................... ok t/interface-implementation.t .. ok t/objects.t ................... ok t/structs.t ................... ok t/values.t .................... ok t/vfunc-chaining.t ............ ok t/vfunc-ref-counting.t ........ ok Test Summary Report ------------------- t/callbacks.t (Wstat: 1536 Tests: 25 Failed: 6) Failed tests: 3, 6, 9, 14, 19, 25 Non-zero exit status: 6 t/enums.t (Wstat: 11 Tests: 1 Failed: 0) Non-zero wait status: 11 Parse errors: Bad plan. You planned 4 tests but ran 1. Files=16, Tests=326, 2 wallclock secs ( 0.11 usr 0.03 sys + 0.94 cusr 0.15 csys = 1.23 CPU) Result: FAIL Failed 2/16 test programs. 6/326 subtests failed. make: *** [test_dynamic] Error 255
Subject: Re: [rt.cpan.org #98463] Test failures on PPC - EPEL for Redhat 7
Date: Thu, 18 Sep 2014 11:40:21 +0200
To: bug-Glib-Object-Introspection [...] rt.cpan.org
From: Torsten Schönfeld <kaffeetisch [...] gmx.de>
On 10.09.2014 13:42, David Dick via RT wrote: Show quoted text
>> Aha, so we have a problem with the inbound array length arg. Please >> try >> again with the ppc64-fixes branch: >> <https://git.gnome.org/browse/perl-Glib-Object- >> Introspection/log/?h=ppc64-fixes>, >> <https://git.gnome.org/browse/perl-Glib-Object- >> Introspection/snapshot/ppc64-fixes.zip>.
> > This is better... > > $ make test > [...]
OK, I think I fixed the remaining problem. Please try the same branch again.
On Thu Sep 18 19:40:38 2014, TSCH wrote: Show quoted text
> OK, I think I fixed the remaining problem. Please try the same branch > again.
getting closer. $ perl Makefile.PL Trying to build test libraries... OK Checking if your kit is complete... Looks good Unrecognized argument in LIBS ignored: '-Wl,--export-dynamic' Unrecognized argument in LIBS ignored: '-pthread' Writing Makefile for Glib::Object::Introspection [ddick@coho ppc64-fixes]$ make test cp build/IFiles.pm blib/arch/Glib/Object/Introspection/Install/Files.pm cp lib/Glib/Object/Introspection.pm blib/lib/Glib/Object/Introspection.pm [ XS GObjectIntrospection.xs ] [ CC GObjectIntrospection.c ] Running Mkbootstrap for Glib::Object::Introspection () chmod 644 Introspection.bs rm -f blib/arch/auto/Glib/Object/Introspection/Introspection.so [ LD blib/arch/auto/Glib/Object/Introspection/Introspection.so ] chmod 755 blib/arch/auto/Glib/Object/Introspection/Introspection.so cp Introspection.bs blib/arch/auto/Glib/Object/Introspection/Introspection.bs chmod 644 blib/arch/auto/Glib/Object/Introspection/Introspection.bs LD_LIBRARY_PATH=:build PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-basic-types.t ............ ok t/arg-checks.t ................ ok t/arrays.t .................... ok t/boxed.t ..................... ok t/cairo-integration.t ......... ok t/callbacks.t ................. ok t/closures.t .................. ok t/constants.t ................. ok t/enums.t ..................... Failed 3/4 subtests t/hashes.t .................... ok t/interface-implementation.t .. ok t/objects.t ................... ok t/structs.t ................... ok t/values.t .................... ok t/vfunc-chaining.t ............ ok t/vfunc-ref-counting.t ........ ok Test Summary Report ------------------- t/enums.t (Wstat: 11 Tests: 1 Failed: 0) Non-zero wait status: 11 Parse errors: Bad plan. You planned 4 tests but ran 1. Files=16, Tests=329, 1 wallclock secs ( 0.11 usr 0.03 sys + 0.95 cusr 0.17 csys = 1.26 CPU) Result: FAIL Failed 1/16 test programs. 0/329 subtests failed. make: *** [test_dynamic] Error 255 $ LD_LIBRARY_PATH=build perl -Iblib/lib -Iblib/arch t/enums.t 1..4 ok 1 Segmentation fault $
Subject: Re: [rt.cpan.org #98463] Test failures on PPC - EPEL for Redhat 7
Date: Sun, 21 Sep 2014 13:29:17 +0200
To: bug-Glib-Object-Introspection [...] rt.cpan.org
From: Torsten Schoenfeld <kaffeetisch [...] gmx.de>
On 18.09.2014 12:40, David Dick via RT wrote: Show quoted text
> Test Summary Report > ------------------- > t/enums.t (Wstat: 11 Tests: 1 Failed: 0) > Non-zero wait status: 11 > Parse errors: Bad plan. You planned 4 tests but ran 1. > Files=16, Tests=329, 1 wallclock secs ( 0.11 usr 0.03 sys + 0.95 cusr 0.17 csys = 1.26 CPU) > Result: FAIL > Failed 1/16 test programs. 0/329 subtests failed. > make: *** [test_dynamic] Error 255 > $ LD_LIBRARY_PATH=build perl -Iblib/lib -Iblib/arch t/enums.t > 1..4 > ok 1 > Segmentation fault > $
OK, enums. I don't understand why the segfault occurs. So, could you run a debugger again? $ LD_LIBRARY_PATH=build gdb --args perl -Iblib/lib -Iblib/arch t/enums.t (gdb) r [...] Segementation fault (gdb) bt I do understand why there are conversion issues with enums, and I think I now fixed these. So, please try the ppc64-fixes branch once more: <https://git.gnome.org/browse/perl-Glib-Object-Introspection/log/?h=ppc64-fixes> <https://git.gnome.org/browse/perl-Glib-Object-Introspection/snapshot/ppc64-fixes.zip>
On Sun Sep 21 21:29:31 2014, TSCH wrote: Show quoted text
> On 18.09.2014 12:40, David Dick via RT wrote:
> > Test Summary Report > > ------------------- > > t/enums.t (Wstat: 11 Tests: 1 Failed: 0) > > Non-zero wait status: 11 > > Parse errors: Bad plan. You planned 4 tests but ran 1. > > Files=16, Tests=329, 1 wallclock secs ( 0.11 usr 0.03 sys + 0.95 > > cusr 0.17 csys = 1.26 CPU) > > Result: FAIL > > Failed 1/16 test programs. 0/329 subtests failed. > > make: *** [test_dynamic] Error 255 > > $ LD_LIBRARY_PATH=build perl -Iblib/lib -Iblib/arch t/enums.t > > 1..4 > > ok 1 > > Segmentation fault > > $
> > OK, enums. I don't understand why the segfault occurs. So, could you > run a debugger again? > > $ LD_LIBRARY_PATH=build gdb --args perl -Iblib/lib -Iblib/arch > t/enums.t > (gdb) r > [...] > Segementation fault > (gdb) bt > > I do understand why there are conversion issues with enums, and I > think > I now fixed these. So, please try the ppc64-fixes branch once more: > > <https://git.gnome.org/browse/perl-Glib-Object- > Introspection/log/?h=ppc64-fixes> > <https://git.gnome.org/browse/perl-Glib-Object- > Introspection/snapshot/ppc64-fixes.zip>
test suite now passes $ perl Makefile.PL Trying to build test libraries... OK Checking if your kit is complete... Looks good Unrecognized argument in LIBS ignored: '-Wl,--export-dynamic' Unrecognized argument in LIBS ignored: '-pthread' Writing Makefile for Glib::Object::Introspection [ddick@coho ppc64-fixes]$ make test cp build/IFiles.pm blib/arch/Glib/Object/Introspection/Install/Files.pm cp lib/Glib/Object/Introspection.pm blib/lib/Glib/Object/Introspection.pm [ XS GObjectIntrospection.xs ] [ CC GObjectIntrospection.c ] Running Mkbootstrap for Glib::Object::Introspection () chmod 644 Introspection.bs rm -f blib/arch/auto/Glib/Object/Introspection/Introspection.so [ LD blib/arch/auto/Glib/Object/Introspection/Introspection.so ] chmod 755 blib/arch/auto/Glib/Object/Introspection/Introspection.so cp Introspection.bs blib/arch/auto/Glib/Object/Introspection/Introspection.bs chmod 644 blib/arch/auto/Glib/Object/Introspection/Introspection.bs LD_LIBRARY_PATH=:build PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-basic-types.t ............ ok t/arg-checks.t ................ ok t/arrays.t .................... ok t/boxed.t ..................... ok t/cairo-integration.t ......... ok t/callbacks.t ................. ok t/closures.t .................. ok t/constants.t ................. ok t/enums.t ..................... ok t/hashes.t .................... ok t/interface-implementation.t .. ok t/objects.t ................... ok t/structs.t ................... ok t/values.t .................... ok t/vfunc-chaining.t ............ ok t/vfunc-ref-counting.t ........ ok All tests successful. Files=16, Tests=332, 2 wallclock secs ( 0.11 usr 0.03 sys + 0.94 cusr 0.15 csys = 1.23 CPU) Result: PASS Thanks!
On Mon Sep 22 04:15:12 2014, DDICK wrote: Show quoted text
> test suite now passes
Sweet! All fixes now pushed to the master branch. Thanks for all your support!