Closed
Bug 507685
Opened 15 years ago
Closed 15 years ago
Intermittent assertion happening in as3/sampling/Callback.as
Categories
(Tamarin Graveyard :: Garbage Collection (mmGC), defect, P4)
Tracking
(Not tracked)
VERIFIED
WORKSFORME
Q3 11 - Serrano
People
(Reporter: brbaker, Unassigned)
References
Details
We have been seeing an intermittent assertion happening in the as3/sampling/Callback.as on windows64, mac-intel-10.5 and solaris.
as3/sampling/Callback.abc : Assertion failed: "(((start_event == (PolicyEvent)(ev - 1))))" (".\\GC.cpp":461)
Disabling test until this is corrected/investigated
Flags: in-testsuite+
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Reporter | ||
Comment 1•15 years ago
|
||
Testcase currently being skipped on all platforms:
changeset: 2296:4fcfce54b0f5
tag: tip
user: Brent Baker <brbaker@adobe.com>
date: Fri Jul 31 14:59:31 2009 -0400
summary: Bug 507685: disable as3/sampling/Callback.as until bug is resolved, intermittent assertion is happening at GC.cpp:461
Assignee: nobody → rishah
Status: NEW → ASSIGNED
Flags: flashplayer-qrb? → flashplayer-qrb+
Priority: -- → P3
Target Milestone: --- → flash10.1
Updated•15 years ago
|
Assignee: rishah → nobody
Status: ASSIGNED → NEW
Comment 2•15 years ago
|
||
Do we have any guess as to why its intermittent, and/or what's going on with it?
Comment 3•15 years ago
|
||
(In reply to comment #2)
> Do we have any guess as to why its intermittent, and/or what's going on with
> it?
No, this is pretty mysterious. It suggests that there is possibly recursion or reentrancy where we would expect there to be none, since the policy events are supposed to be "flat". At a guess, if user code is invoked from a GC callback and we haven't taken that into account then this could conceivably happen.
Comment 4•15 years ago
|
||
perhaps we could try running the test in greedy mode...
Comment 5•15 years ago
|
||
(In reply to comment #3)
> ... At a guess, if user code is invoked from a GC callback
> and we haven't taken that into account then this could conceivably happen.
- The postsweep() callbacks are called when the GC is "finished" (both marking
and collecting have been set to false) but the END_FinalizeAndSweep signal is
sent after that. So if postsweep() causes activity that triggers the start
of a new GC we should get exactly this assertion when END_FinalizeAndSweep
is sent.
However, all postsweep() callbacks in the VM shell appear to be completely
trivial.
- The prereap() callbacks are called after the START_ReapZCT has been sent,
but nothing stops the prereap() callbacks from triggering a GC. Then the
assert should be seen when the START_StartIncrementalMark event is sent.
However, all prereap() callbacks in the VM shell appear to be completely
trivial.
Comment 6•15 years ago
|
||
(In reply to comment #5)
> - The prereap() callbacks are called after the START_ReapZCT has been sent,
> but nothing stops the prereap() callbacks from triggering a GC. Then the
> assert should be seen when the START_StartIncrementalMark event is sent.
Actually the assert would be seen when the END_ReapZCT even is signalled, after the signalling of END_StartIncrementalMark has cleared the event history.
Comment 7•15 years ago
|
||
More user code: C++ destructors are run during ZCT reaping. The destructors could in principle trigger the start of a GC or force an ongoing GC to completion. In either case allocation would be required, and there's not a lot of allocation among the destructors in the VM shell. However not much allocation is needed if the system is on the brink in any case.
Comment 8•15 years ago
|
||
C++ destructors are also run during sweeping, but at that point the state of the system is such that it should not be possible to trigger a new collection or a zct reap.
I've added some better debugging code to Tamarin and will probably re-enable the test to see if further testing will give us more data.
Comment 9•15 years ago
|
||
redux changeset: 3003:7c2238cace24 re-enables the test.
Updated•15 years ago
|
Priority: P3 → P4
Comment 10•15 years ago
|
||
Two months on we've not seen another instance of this - closing as UTR.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → WORKSFORME
Reporter | ||
Updated•15 years ago
|
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•