# New Ticket Created by Patrick R. Michaud
# Please include the string: [perl #47970]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=47970 >
Yes, that subject line is correct -- I've found a bug
that shows itself _only_
- when I build Parrot using ccache,
- for one seemingly obscure json test,
- when running Parrot with the --gc-debug core (e.g., 'make test')
- for revisions after 23232
It's very consistent, however -- I can reproduce it reliably on
my system.
Here are the details as best I can put them together.
The failing test is t/compilers/json/to_parrot.t #54 .
The code it generates is:
.sub test :main
load_bytecode 'compilers/json/JSON.pbc'
load_bytecode 'library/dumper.pbc'
.local pmc JSON, result
JSON = compreg "JSON"
result = JSON("{\"one\":true,\"two\":false,\"three\":null}")
_dumper(result, "JSON")
.end
Running this with a normal parrot command line gives:
$ ./parrot to_parrot_57.pir
"JSON" => Hash {
"one" => 1,
"three" => null,
"two" => 0
}
Running this with --gc-debug gives a segmentation fault.
Adding 'say' statements shows that the segfault occurs sometime
during the _dumper() call (i.e., the call to JSON appears to
succeed).
The script I use to build Parrot with ccache looks like:
make realclean
CC="ccache gcc"
CX="ccache g++"
perl ./Configure.pl --cc="$CC" --cxx="$CX" --link="$CX" --ld="$CX" $@ &&
make
I tried doing the above by hand as well and get the same results.
I'm running Kubuntu 7.10.
Gcc reports gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
ccache reports version 2.4
All packages are the standard ones distributed as part of the
Kubuntu repositories.
If I can provide further details, let me know. As things stand now,
I can't get 'make test' to pass this one json test when I build Parrot
using ccache.
Thanks!
Pm