Ticket #1872 (closed bug: fixed)
t/pmc/fixedstringarray.t fails coretest 64 bit with g++-4.5
Reported by: | mikehh | Owned by: | bacek |
---|---|---|---|
Priority: | normal | Milestone: | 2.11 |
Component: | core | Version: | master |
Severity: | medium | Keywords: | Segmentation Fault |
Cc: | Language: | ||
Patch status: | Platform: | linux |
Description
I first got this failure with Kubuntu 10.10 amd64 (g++-4.5) - (RELEASE_2_10_1-477-gfa56f62)
make corevm/make coretest: t/pmc/fixedstringarray.t ............ Failed 10/50 subtests Test Summary Report ------------------- t/pmc/fixedstringarray.t (Wstat: 11 Tests: 40 Failed: 0) Non-zero wait status: 11 Parse errors: Bad plan. You planned 50 tests but ran 40. Files=217, Tests=6641, 40 wallclock secs ( 3.37 usr 0.83 sys + 72.65 cusr 15.20 csys = 92.05 CPU) Result: FAIL make: *** [coretest] Error 1
(status 11 indicates a Segmentation Fault)
prove -v t/pmc/fixedstringarray.t t/pmc/fixedstringarray.t .. 1..50 ok 1 - Fresh array has 0 elements ok 2 - Size was set correctly ok 3 - Can't resize ok 4 - First element set to integer properly ok 5 - First element set to number properly ok 6 - First element set to string properly ok 7 - Second element set to integer properly ok 8 - Second element set to number properly ok 9 - Second element set to string properly ok 10 - Can't set out-of-bounds element ok 11 - Can't set element on negative index ok 12 - Can't get out-of-bounds element ok 13 - Can't get element with negative index ok 14 - Set INTVAL via PMC Key works ok 15 - Set FLOATVAL via PMC Key works ok 16 - Set STRING via PMC Key works ok 17 - Get INTVAL via Key works ok 18 - Get FLOATVAL via Key works ok 19 - Get STRING via Key works ok 20 - Get INTVAL for stored PMC via Key works ok 21 - Does not scalar ok 22 - Does array ok 23 - Does not no_interface ok 24 - First element cloned ok 25 - Second element cloned ok 26 - Third element cloned ok 27 - Resize of uninitialized clone successful ok 28 - Resize of initialization not successful ok 29 - Empty array is false ok 30 - Non-empty array is true ok 31 - Iteration works ok 32 - get_iter works ok 33 - Array stringified properly ok 34 - Empty arrays are equal ok 35 - Not equal to other type ok 36 - Different size arrays aren't equal ok 37 - Equal with first element set ok 38 - Not equal when second element differ ok 39 - Equal when second element same ok 40 - Not equal when second element is null Failed 10/50 subtests Test Summary Report ------------------- t/pmc/fixedstringarray.t (Wstat: 11 Tests: 40 Failed: 0) Non-zero wait status: 11 Parse errors: Bad plan. You planned 50 tests but ran 40. Files=1, Tests=40, 0 wallclock secs ( 0.04 usr 0.00 sys + 0.48 cusr 0.00 csys = 0.52 CPU) Result: FAIL mhk@mhk-desktop:~/parrot$ date Wed Nov 24 12:37:09 GMT 2010
subtest 41..44 are in sub 'test_gc'
I extracted these and ran them separately - PASS
subtests 34..40 are in sub 'test_equality'
I added these (so 34..44 became 1..11) - PASS
The test passes after running make world/make test. It also passes make corevm/make coretest using g++-4.5 with --optimize and with gcc-4.5 (with or without --optimize) and on i386 (32 bit) versions of Ubuntu and also with Ubuntu 10.04 amd64 with g++-4.4
So it only fails on 64-bit Ubuntu and Kubuntu 10.10 with g++-4.5 after running make corevm, before running make (world).
At this stage I am not sure if this is a bug in the compiler (?), something in my setup, or a fundamental problem that it is picking up in parrot.
I did a new clone of parrot just in case and I got the same results with Ubuntu 10.10 amd64 (g++-4.5) - RELEASE_2_10_1-477-gfa56f62 and again with RELEASE_2_10_1-490-g3cfeb72
Comments Welcome.