Closed Bug 490623 Opened 15 years ago Closed 15 years ago

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

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 489345

People

(Reporter: manickam, Unassigned)

References

Details

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.
Blocks: 487199
Blocks: 489345
No longer blocks: 487199
fixed in player, fixed in pending oom implementation path
Status: UNCONFIRMED → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.