Closed
Bug 1391262
Opened 7 years ago
Closed 7 years ago
Crash in mozilla::layers::WebRenderBridgeChild::IPCOpen
Categories
(Core :: Graphics: WebRender, defect, P1)
Tracking
()
RESOLVED
FIXED
mozilla58
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox56 | --- | unaffected |
firefox57 | --- | unaffected |
firefox58 | --- | fixed |
People
(Reporter: marcia, Assigned: sotaro)
References
(Blocks 1 open bug)
Details
(Keywords: crash, Whiteboard: [wr-mvp] [gfx-noted])
Crash Data
Attachments
(2 files, 5 obsolete files)
(deleted),
patch
|
sotaro
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
sotaro
:
review+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is
report bp-26d215f5-3039-47f2-abe6-5fb6e0170817.
=============================================================
Seen while looking at nightly data: http://bit.ly/2v4LYAO. 16 crashes/11 installs. Crashes started using 20170816100153
Comment 1•7 years ago
|
||
The WrBridge() call is probably returning null. The SetLayerObserverEpoch gets called pretty early sometimes and it has the side-effect of creating a new LayerManager without fully initializing it.
Assignee | ||
Updated•7 years ago
|
Blocks: wr-stability
Assignee | ||
Updated•7 years ago
|
Updated•7 years ago
|
Blocks: stage-wr-nightly
Updated•7 years ago
|
Priority: -- → P3
Updated•7 years ago
|
Whiteboard: [gfx-noted]
Updated•7 years ago
|
Priority: P3 → P2
Whiteboard: [gfx-noted] → [wr-mvp] [gfx-noted]
Updated•7 years ago
|
Assignee | ||
Updated•7 years ago
|
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → sotaro.ikeda.g
Updated•7 years ago
|
Status: NEW → ASSIGNED
Priority: P2 → P1
Assignee | ||
Comment 2•7 years ago
|
||
The crash still happens since Bug 1401849 fix. And all crash reports had "Failed to create WebRenderBridgeChild".
Assignee | ||
Comment 3•7 years ago
|
||
Assignee | ||
Comment 4•7 years ago
|
||
Attachment #8916846 -
Attachment is obsolete: true
Assignee | ||
Comment 5•7 years ago
|
||
Attachment #8916847 -
Attachment is obsolete: true
Assignee | ||
Comment 6•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Attachment #8916848 -
Attachment description: patch - Do not use remote LayerManager when its initialization fails → patch part 1 - Do not use remote LayerManager when its initialization fails
Assignee | ||
Updated•7 years ago
|
Attachment #8916850 -
Attachment description: patch - Create TabChild::CreateRemoteLayerManager() → patch part 2 - Create TabChild::CreateRemoteLayerManager()
Assignee | ||
Comment 7•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Attachment #8916848 -
Flags: review?(dvander)
Assignee | ||
Updated•7 years ago
|
Attachment #8916850 -
Flags: review?(dvander)
Comment on attachment 8916848 [details] [diff] [review]
patch part 1 - Do not use remote LayerManager when its initialization fails
Review of attachment 8916848 [details] [diff] [review]:
-----------------------------------------------------------------
::: widget/PuppetWidget.h
@@ +181,5 @@
> GetLayerManager(PLayerTransactionChild* aShadowManager = nullptr,
> LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE,
> LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override;
>
> + // This is used for crearing "remote" layer manager and for re-creaging it
// This is used for creating remote layer managers and for re-creating
// them after a compositor reset. [...]
Attachment #8916848 -
Flags: review?(dvander) → review+
Attachment #8916850 -
Flags: review?(dvander) → review+
Assignee | ||
Comment 9•7 years ago
|
||
Apply the comment.
Attachment #8916848 -
Attachment is obsolete: true
Attachment #8917205 -
Flags: review+
Comment 10•7 years ago
|
||
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3dd22fb8666c
Do not use remote LayerManager when its initialization fails r=dvander
https://hg.mozilla.org/integration/mozilla-inbound/rev/fbd346f1d966
Create TabChild::CreateRemoteLayerManager() r=dvander
Comment 11•7 years ago
|
||
Backout by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/mozilla-inbound/rev/629e5c24737b
Backed out changeset fbd346f1d966
https://hg.mozilla.org/integration/mozilla-inbound/rev/21156335f590
Backed out changeset 3dd22fb8666c for frequently asserting in mochitests on Windows 10 x64 debug, often in devtools/client/shared/webpack/shims/test/test_clipboard.html. r=backout
Comment 12•7 years ago
|
||
Backed out for frequently asserting in mochitests on Windows 10 x64 debug, often in devtools/client/shared/webpack/shims/test/test_clipboard.html:
https://hg.mozilla.org/integration/mozilla-inbound/rev/21156335f590c262975ff2ce209be97147a7812e
https://hg.mozilla.org/integration/mozilla-inbound/rev/629e5c24737ba0e38ef54ee2515b1d79245b9289
Range containing push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&fromchange=4c0a762ebe6f1bc0e073fd06b4adbf98ba58a4f2&group_state=expanded&filter-searchStr=89f3280bf2fec71ea010763ecfe2c86e110cdab2&tochange=20571bff3967d08e90c1b20b1e5175ef27164274&selectedJob=136161857
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=136161857&repo=mozilla-inbound
> TEST-UNEXPECTED-FAIL | devtools/client/shared/webpack/shims/test/test_clipboard.html | assertion count 2 is more than expected 0 assertions
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 13•7 years ago
|
||
With the patches, When TabChild failed to allocate LayerTransactionChild, PuppetWidget::Paint() becomes to call "GetCurrentWidgetListener()->PaintWindow(this, region)". It seems to hit hidden bug.
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 14•7 years ago
|
||
From the investigation, when mAttachedWidgetListener->GetView()->IsPrimaryFramePaintSuppressed() is true, PuppetWidget::mPreviouslyAttachedWidgetListener is used, in this case, assert of nsView::PaintWindow() could fail.
https://dxr.mozilla.org/mozilla-central/source/view/nsView.cpp#1066
Assignee | ||
Comment 15•7 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #14)
> From the investigation, when
> mAttachedWidgetListener->GetView()->IsPrimaryFramePaintSuppressed() is true,
> PuppetWidget::mPreviouslyAttachedWidgetListener is used,
It was added by Bug 1157941.
But we do not need to call PaintWindow() in this case. We fallback to Basic window because of LayerTransactionChild creation failure. But we do not need to do painting here.
Assignee | ||
Comment 16•7 years ago
|
||
Attachment #8917205 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8918292 -
Flags: review+
Assignee | ||
Comment 17•7 years ago
|
||
Attachment #8916850 -
Attachment is obsolete: true
Assignee | ||
Comment 18•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Attachment #8918292 -
Attachment description: patch part 1 - Do not use remote LayerManager when its initialization failspatch_1391262_5 → patch part 1 - Do not use remote LayerManager when its initialization fails
Assignee | ||
Updated•7 years ago
|
Attachment #8918293 -
Flags: review+
Comment 19•7 years ago
|
||
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/38330dd0d9e5
Do not use remote LayerManager when its initialization fails r=dvander
https://hg.mozilla.org/integration/mozilla-inbound/rev/e0c53e24ab2a
Create TabChild::CreateRemoteLayerManager() r=dvander
Comment 20•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/38330dd0d9e5
https://hg.mozilla.org/mozilla-central/rev/e0c53e24ab2a
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox58:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Updated•7 years ago
|
status-firefox-esr52:
--- → unaffected
Comment 23•7 years ago
|
||
I think the root cause of this bug is the same as Bug 1406729, InternalSetDocShellIsActive might be called pretty early and CompositorBridge hasn't be fully initialized yet.
Since the crash volume in Bug 1406729 is not high and the patch is not a simple patch so I am not sure if we should uplift it to beta 57.
Sotaro, do you have any thought about this?
Flags: needinfo?(sotaro.ikeda.g)
Assignee | ||
Comment 24•7 years ago
|
||
The fix has a risk of regression like Bug 1408490 and the crash volume of Bug 1406729 is not high, it might better not up lift the fix.
Flags: needinfo?(sotaro.ikeda.g)
You need to log in
before you can comment on or make changes to this bug.
Description
•