On Thursday 29 November 2007 18:05:32 Patrick R.Michaud wrote:

> 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.

Can you provide a backtrace that shows which dereference is invalid?

-- c

Reply via email to