Closed Bug 472852 Opened 16 years ago Closed 15 years ago

spurious gc weak-ref selftest assert

Categories

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

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED WORKSFORME
flash10.1

People

(Reporter: edwsmith, Assigned: lhansen)

References

Details

ecma3/ObjectObjects/class_001.abc : Assertion failed: "((ref->get() == 0))" ("e:/buildbot/tamarin-redux/windows/tamarin-redux/MMgc/GCTests.cpp"

has been witnessed at least on:
 - mac ppc
 - windows x86

according to Tom Reilly: "I think it means the weak ref didn’t die because we found a reference on the stack or in a register."

Since the gc self-tests run every time a debug enabled VM is started, there isn't a good way to exclude this as a standalone test.

ways to resolve this bug:
 - remove the weakref self test entirely
 - re-implement the self-test as a standalone test maybe with the new unit test framework
 - figure out if Tom's theory is correct and fix the test case to ensure there are no hard-refs sitting around
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Assignee: nobody → lhansen
Status: NEW → ASSIGNED
Flags: flashplayer-qrb? → flashplayer-qrb+
Target Milestone: --- → flash10.x
And now also seen on Sparc: 
https://bugzilla.mozilla.org/show_bug.cgi?id=476983
Has this reoccurred in the last several months?  Still open?
Depends on: 487032
This has not been seen in the build system for a long time, there was a period when every test when ran against the debug VM would cause this assert.

Probably can be closed, but will leave that up to Lars/Tom to verify.
Apparently the test is no longer being run - GCTests.cpp is still with us and contains a test like this, but the test is only called from a test runner (RunGCTests) that's never called.

I will make a note in the source code that running the test may cause this bug to become relevant again, and then close this bug.
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → WORKSFORME
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.