Closed Bug 1145997 Opened 5 years ago Closed 9 months ago

Intermittent TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/debug/Memory-onGarbageCollection-01.js | Assertion failure: T(double(t)) == t (value creation would be lossy), at ../../dist/include/js/Value.h:1596 (code -11, args "--no-baseline --no-ion")

Categories

(Core :: JavaScript Engine, defect, P3)

x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
Tracking Status
firefox39 --- fixed

People

(Reporter: jimb, Assigned: jonco)

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

I have seen these failures in Try pushes for bug 1134039, but now they've gone away and I get clean try pushes.

I'm filing this bug so that I can be notified if they were not actually resolved, and to allow others to just star the failure and move on with their lives. If it doesn't come up any more, I'll close the bug.
I think the problem is that Debugger::translateGCStatistics() makes use of the runtime's GC statistics object but can also trigger a GC which will mutate that object.
Since this is happening fairly often I think we should fix this the easy way first: by suppressing GC in Debugger::translateGCStatistics().

I think a better fix would be to separate out the Statistics object into an object that holds the statistics and the object that produces them.  We can allocate a new data object at the start of GC and then detach it from the producer and pass it to Debugger::onGarbageCollection() in endGC() before deleting it.  As long as the stats object is not held in some global location when the debugger hook runs this situation will not arise.
Attachment #8586161 - Flags: review?(sphink)
Comment on attachment 8586161 [details] [diff] [review]
bug1145997-suppress-gc

Review of attachment 8586161 [details] [diff] [review]:
-----------------------------------------------------------------

This seems fine for a spot fix for the intermittent orange. I agree with the longer term direction too, though it gets a little weird because each GC slice gets a new fallible allocation. But that's no worse than what we're doing already, with the 'aborted' flag.
Attachment #8586161 - Flags: review?(sphink) → review+
Bulk assigning P3 to all open intermittent bugs without a priority set in Firefox components per bug 1298978.
Priority: -- → P3
The leave-open keyword is there and there is no activity for 6 months.
:sdetar, maybe it's time to close this bug?
Flags: needinfo?(sdetar)
Jon, what should do with this old bug which has leave-open keyword?
Flags: needinfo?(sdetar) → needinfo?(jcoppeard)
This is fixed now.
Status: NEW → RESOLVED
Closed: 9 months ago
Flags: needinfo?(jcoppeard)
Keywords: leave-open
Resolution: --- → FIXED
Assignee: nobody → jcoppeard
You need to log in before you can comment on or make changes to this bug.