Closed
Bug 1285238
Opened 9 years ago
Closed 9 years ago
Intermittent LeakSanitizer | leak at mozilla::layers::BufferTextureData::CreateInternal, mozilla::layers::BufferTextureData::CreateForYCbCr, mozilla::layers::TextureClient::CreateForYCbCr, mozilla::layers::YCbCrTextureClientAllocationHelper::Allocate
Categories
(Core :: Graphics: Layers, defect)
Core
Graphics: Layers
Tracking
()
RESOLVED
FIXED
mozilla50
Tracking | Status | |
---|---|---|
firefox50 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: sotaro, NeedInfo)
Details
(Keywords: intermittent-failure, memory-leak, Whiteboard: [gfx-noted])
Attachments
(1 file)
4.78 KB,
patch
|
nical
:
review+
|
Details | Diff | Splinter Review |
Comment 1•9 years ago
|
||
This looks like there's a race condition during shutdown causing this leak. Nical, is there anything we can do on our side about this? (See the log's gfxCriticalError)
Flags: needinfo?(nical.bugzilla)
Flags: needinfo?(matt.woodrow)
Whiteboard: [gfx-noted]
Comment 2•9 years ago
|
||
We already try to mitigate this type of situation by forcing all textures to be destroyed synchronously when shutting down our ipdl protocols. Doing that is not race-free unfortunately, and making that completely race-free is hard, so it can happen that textures fall through the cracks and don't get destroyed syncrhonously with the ImageBridge. The issue here is that the destruction of the texture is happening very late when the ImageBridge thread itself (not just the protocols) is already gone. Papering over this is hard. The most sensible way to fix this is to identify what is releasing the texture so late and make sure it is cleaned up during media or gfx's shutdown. Unfortunately there is no stack for the gfxCriticalError in the log so I my guess would be to start looking at the TextureClientRecycleAllocator that was added recently-ish and may not be dealing with shutdown explicitly.
Flags: needinfo?(nical.bugzilla)
Comment 3•9 years ago
|
||
Sotaro, is there an explicit mechanism to make sure the recycling mechanism for video texture is shut down before the gfx IPDL protocols? In particular I am looking at CompositableClient::mTextureClientRecycler which seems to rely only on reference counting and it is probably not enough to have the recycler reliably cleaned up in time.
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 4•9 years ago
|
||
(In reply to Nicolas Silva [:nical] from comment #3)
> Sotaro, is there an explicit mechanism to make sure the recycling mechanism
> for video texture is shut down before the gfx IPDL protocols?
There is not explicit mechanism now. I am going to add it.
Assignee: nobody → sotaro.ikeda.g
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 5•9 years ago
|
||
Assignee | ||
Comment 6•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Attachment #8770784 -
Flags: review?(nical.bugzilla)
Updated•9 years ago
|
Attachment #8770784 -
Flags: review?(nical.bugzilla) → review+
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/0659b2021265
Add TextureClientRecycleAllocator::Destroy() r=nical
![]() |
||
Comment 8•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox50:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
You need to log in
before you can comment on or make changes to this bug.
Description
•