Closed
Bug 958726
Opened 10 years ago
Closed 10 years ago
Perform shrinking GC if nsJSContext::GarbageCollectNow is called with aShrinking == ShrinkingGC.
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
People
(Reporter: till, Assigned: till)
Details
(Whiteboard: [MemShrink])
Attachments
(1 file)
1.09 KB,
patch
|
billm
:
review+
bajaj
:
approval-mozilla-aurora+
bajaj
:
approval-mozilla-beta+
lsblakk
:
approval-mozilla-esr24-
bajaj
:
approval-mozilla-b2g26+
|
Details | Diff | Splinter Review |
In bug 758034, the browser's GC api was refactored. That regressed the memory-pressure GCs, which now don't do shrinking GCs anymore.
Assignee | ||
Comment 1•10 years ago
|
||
Attachment #8358643 -
Flags: review?(wmccloskey)
Comment on attachment 8358643 [details] [diff] [review] Perform shrinking GC if nsJSContext::GarbageCollectNow is called with aShrinking == ShrinkingGC. Review of attachment 8358643 [details] [diff] [review]: ----------------------------------------------------------------- Thanks. We should backport this.
Attachment #8358643 -
Flags: review?(wmccloskey) → review+
Assignee | ||
Comment 3•10 years ago
|
||
Try-servering here: https://tbpl.mozilla.org/?tree=Try&rev=dadaf183da72
Assignee | ||
Comment 4•10 years ago
|
||
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/951247ec2044
Whiteboard: [MemShrink]
Assignee | ||
Comment 5•10 years ago
|
||
Comment on attachment 8358643 [details] [diff] [review] Perform shrinking GC if nsJSContext::GarbageCollectNow is called with aShrinking == ShrinkingGC. [Approval Request Comment] Bug caused by (feature/regressing bug #): bug 758034 User impact if declined: potentially more OOM crashes Testing completed: landed on m-i, full try run Risk to taking this patch (and alternatives if risky): extremely low. Makes shrinking GCs more likely to happen, nothing else String or UUID changes made by this patch: none Given that this might reduce OOM crashes and is extremely low-risk, I think it should be uplifted to various b2g branches, too. I don't know how the process for that works, though.
Attachment #8358643 -
Flags: approval-mozilla-beta?
Attachment #8358643 -
Flags: approval-mozilla-aurora?
![]() |
||
Comment 6•10 years ago
|
||
> Given that this might reduce OOM crashes and is extremely low-risk, I think
> it should be uplifted to various b2g branches, too. I don't know how the
> process for that works, though.
khuey knows...
Flags: needinfo?(khuey)
Comment 7•10 years ago
|
||
Comment on attachment 8358643 [details] [diff] [review] Perform shrinking GC if nsJSContext::GarbageCollectNow is called with aShrinking == ShrinkingGC. V1.3 is covered by the Aurora nom. For v1.2, you want b2g26 approval More info: https://wiki.mozilla.org/Release_Management/B2G_Landing
Attachment #8358643 -
Flags: approval-mozilla-b2g26?
Flags: needinfo?(khuey)
Comment 8•10 years ago
|
||
Should this go on esr24 too?
Assignee | ||
Comment 9•10 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM UTC-5] from comment #8) > Should this go on esr24 too? Hmm, maybe. Let's wait what the drivers say about the other uplifts, first?
Comment 10•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/951247ec2044
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
Updated•10 years ago
|
Attachment #8358643 -
Flags: approval-mozilla-beta?
Attachment #8358643 -
Flags: approval-mozilla-beta+
Attachment #8358643 -
Flags: approval-mozilla-b2g26?
Attachment #8358643 -
Flags: approval-mozilla-b2g26+
Attachment #8358643 -
Flags: approval-mozilla-aurora?
Attachment #8358643 -
Flags: approval-mozilla-aurora+
Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed
Comment 11•10 years ago
|
||
https://hg.mozilla.org/releases/mozilla-aurora/rev/67beca04cda8 https://hg.mozilla.org/releases/mozilla-beta/rev/891f559ab340 https://hg.mozilla.org/releases/mozilla-b2g26_v1_2/rev/52166aee7203
status-b2g18:
--- → wontfix
status-b2g-v1.1hd:
--- → wontfix
status-b2g-v1.2:
--- → fixed
status-b2g-v1.3:
--- → fixed
status-b2g-v1.4:
--- → fixed
status-firefox27:
--- → fixed
status-firefox28:
--- → fixed
status-firefox29:
--- → fixed
status-firefox-esr24:
--- → affected
Keywords: checkin-needed
Assignee | ||
Comment 13•10 years ago
|
||
The reason this wasn't caught any earlier is that it's not really testable, afaik. ni?'ing billm for verification, though. Bill, could we somehow test that sending a memory-pressure event causes a shrinking instead of a normal gc?
Flags: needinfo?(till) → needinfo?(wmccloskey)
Assignee | ||
Comment 14•10 years ago
|
||
Comment on attachment 8358643 [details] [diff] [review] Perform shrinking GC if nsJSContext::GarbageCollectNow is called with aShrinking == ShrinkingGC. [Approval Request Comment] If this is not a sec:{high,crit} bug, please state case for ESR consideration: might reduce crash rates, extremely low risk User impact if declined: pontially more OOM crashes Fix Landed on Version: first on m-c, uplifted to aurora and beta Risk to taking this patch (and alternatives if risky): extremely now String or UUID changes made by this patch: none Given that this patch, as expected, didn't cause any problems on any branch, we might as well uplift it to ESR in the hopes of reducing crashes with pretty much no downsides.
Attachment #8358643 -
Flags: approval-mozilla-esr24?
(In reply to Till Schneidereit [:till] from comment #13) > The reason this wasn't caught any earlier is that it's not really testable, > afaik. ni?'ing billm for verification, though. Bill, could we somehow test > that sending a memory-pressure event causes a shrinking instead of a normal > gc? We could fire an observer notification when a GC happens and then a test could listen for that. The notification would include details like whether it's a shrinking GC. I'm afraid I don't have time to work on this though.
Flags: needinfo?(wmccloskey)
Assignee | ||
Comment 16•10 years ago
|
||
(In reply to Bill McCloskey (:billm) from comment #15) > We could fire an observer notification when a GC happens and then a test > could listen for that. The notification would include details like whether > it's a shrinking GC. I'm afraid I don't have time to work on this though. While that sounds good, I'm not sure the effort is warranted. The regression this bug fixes isn't something that we should expect to happen again soon, so I don't think investing quite a bit of work into preventing the reoccurrence is worth it.
Comment 17•10 years ago
|
||
(In reply to Till Schneidereit [:till] from comment #16) > (In reply to Bill McCloskey (:billm) from comment #15) > > We could fire an observer notification when a GC happens and then a test > > could listen for that. The notification would include details like whether > > it's a shrinking GC. I'm afraid I don't have time to work on this though. > > While that sounds good, I'm not sure the effort is warranted. The regression > this bug fixes isn't something that we should expect to happen again soon, > so I don't think investing quite a bit of work into preventing the > reoccurrence is worth it. Based on the choices in front of us: A) Investigate and develop a test to ensure this doesn't regress ever again - or - B) Investigate, develop, and test a fix for a shipped regression ...it seems like you think A is more work and B is unlikely to happen. Isn't it more work in the long run if B happens though?
![]() |
||
Comment 18•10 years ago
|
||
Given that this problem (a) occurred, and (b) was bad... I'm in favour of a test.
Comment 19•10 years ago
|
||
Comment on attachment 8358643 [details] [diff] [review] Perform shrinking GC if nsJSContext::GarbageCollectNow is called with aShrinking == ShrinkingGC. That's not how the ESR branch works. This isn't a security fix or an exceptionally high volume crash that we can attribute to on that channel so there's actually no reason to take extra churn on this branch. see: https://wiki.mozilla.org/Release_Management/ESR_Landing_Process
Attachment #8358643 -
Flags: approval-mozilla-esr24? → approval-mozilla-esr24-
Updated•10 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•