MMGC asserts "Missing MMGC_GCENTER macro" while in GC's constructor

VERIFIED DUPLICATE of bug 489345

Status

Tamarin
Garbage Collection (mmGC)
VERIFIED DUPLICATE of bug 489345
9 years ago
9 years ago

People

(Reporter: Arun, Unassigned)

Tracking

Details

(Reporter)

Description

9 years ago
User-Agent:       Opera/9.61 (Windows NT 5.1; U; en) Presto/2.1.1
Build Identifier: 1,3,0,cyclone 

This happens when there are multiple GCs working on the same GCHeap.

GC does some allocations in its constructor for emptyWeakRefs. These allocations may potentially trigger GC marking phase if there are multiple GCs working on the same GCHeap. GCHeap may be in a condition that it needs garbage collection. At the end of marking phase, GC tries to mark stack where it asserts MMGC_GCENTER has not been called yet by the application. Application cannot call MMGC_GCENTER until GC is created. But we are still inside GC's constructor.

Reproducible: Sometimes

Actual Results:  
MMGC asserts that "Missing MMGC_GCENTER macro"

Expected Results:  
MMGC should not assert. Application did not call MMGC_GCENTER because GC is not yet created.

Calling MMGC_GCENTER in GC's constructor before allocation of emptyWeakRef fixes the issue.

Updated

9 years ago
Blocks: 487199

Updated

9 years ago
Blocks: 489345
No longer blocks: 487199

Comment 1

9 years ago
fixed in player, fixed in pending oom implementation path
Status: UNCONFIRMED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 489345

Updated

9 years ago
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.