Okay, short update:

First, thanks to everybody who has been helping to test this. With all
the data points, and some help from bacek last night, I think we have
the problem isolated. Originally, Moritz was seeing two distinct sets
of failures that both manifested as weird segfaults and assertion
failures during the build and spectests for Rakudo. The first set of
failures was caused by GC running during packfile packing and output
to file, typically during the build. This was a problem with gms and
ms2 GC cores alike. Patches from plobsing and myself have fixed this
set of issues.

The second set of problems occurs only with the GMS GC, typically
during program execution. This typically manifests as failures during
test or spectest. This happens because the imcc_compreg_pmc branch is
returning PtrObj PMCs from IMCC instead of raw PackFile* pointers.
Those PMCs, while registered in the root set, are not being
writebarriered when the PackFile* structure is modified. These
modifications are more common than I originally had thought.

bacek has started a new branch to work around the problem "the right
way". I don't know if that branch will be ready before the release.
Here's my plan of attack:

Plan A: I'm going to conjure up an evil hack today to try and add
write barriers to PackFile operations.
Plan B: If my evil hack does not work by the end of the day today, I'm
going to try to unmerge the imcc_compreg_pmc branch until after the
release, when we can merge it and bacek's fixes together. I'll start
on the unmerge tomorrow morning if needed.
Plan C: If all else fails, and the unmerge is not possible for
whatever reason (there's no reason to suspect it won't be), we can
release as-is. The caveat being that the GMS GC won't be usable in the
release, although it's not the default supported GC anyway. This is
obviously a bad option, and we won't come to it unless there are
severe problems.

Thanks again to everybody who's helped run tests. The effort has been
extremely valuable narrowing down the problem and helping us to find a
solution.

--Andrew Whitworth



On Fri, Apr 15, 2011 at 7:02 AM, Vasily Chekalkin <[email protected]> wrote:
> Hello.
>
> Long story short - "our packfiles handling suck". Major problem
> PackFile* interp->initial_pf (which is quite misleadig name for it)
> gets updated behind the scene. "Scene" is PtrObj created by new API.
>
> Proper solution is to switch to Packfile PMCs internally. But it's
> quite big project (and we missed opportunity for gsocing it).
>
> For time being can you test packfile_wrap branch?
>
> --
> Bacek
>
> On Fri, Apr 15, 2011 at 7:15 PM, Moritz Lenz <[email protected]> wrote:
>> On 04/15/2011 11:00 AM, Gerd Pokorra wrote:
>>> $ make spectest
>>>
>>> from today from current rakudo on top of current parrot on x86_64
>>> configured without options finished fine.
>>
>> It only segfaults when parrot is configured with --gc=gms
>>
>> Cheers,
>> Moritz
>> _______________________________________________
>> http://lists.parrot.org/mailman/listinfo/parrot-dev
>>
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev
>
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to