If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

deterministicgc() causes a leak

RESOLVED FIXED in mozilla20

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: Jesse Ruderman, Assigned: billm)

Tracking

({mlk, regression, testcase})

Trunk
mozilla20
x86_64
Mac OS X
mlk, regression, testcase
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [js:inv:p1])

Attachments

(3 attachments)

(Reporter)

Description

5 years ago
Created attachment 637208 [details]
testcase

1. Install https://www.squarefree.com/extensions/domFuzzLite3.xpi
2. Run a debug build of Firefox with XPCOM_MEM_LEAK_LOG=2
3. Load the testcase.
4. Quit Firefox.

Regression range: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=5cdbeae14405&tochange=5b3bf49ce3cf
(Reporter)

Comment 1

5 years ago
Created attachment 637209 [details]
leak log
Whiteboard: [js:inv:p1]
(Reporter)

Comment 2

5 years ago
It might be best to fix the crash discovered in bug 770218 before fixing this leak.
(Reporter)

Updated

5 years ago
Assignee: general → wmccloskey
(Assignee)

Comment 3

5 years ago
Created attachment 686815 [details] [diff] [review]
fix

This regressed when I made a separate GC reason for shutdown CCs.
Attachment #686815 - Flags: review?(continuation)
Attachment #686815 - Flags: review?(continuation) → review+
(Assignee)

Comment 4

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/257f949e15fa

Comment 5

5 years ago
https://hg.mozilla.org/mozilla-central/rev/257f949e15fa
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla20
(Reporter)

Comment 6

5 years ago
Comment on attachment 686815 [details] [diff] [review]
fix

> This regressed when I made a separate GC reason for shutdown CCs.

If this were a switch rather than an "if >", the compiler could have said you were missing a case :)

>-    if (reason > gcreason::DEBUG_GC && reason != gcreason::CC_FORCED)
>+    if (reason > gcreason::DEBUG_GC &&
>+        reason != gcreason::CC_FORCED && reason != gcreason::SHUTDOWN_CC)
>+    {
>         return false;
>+    }
You need to log in before you can comment on or make changes to this bug.