Closed Bug 1700848 Opened 7 months ago Closed 7 months ago

WebRenderBridgeParent::Destroy() does not destroy related RenderCompositor

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED
89 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox86 --- wontfix
firefox87 --- wontfix
firefox88 --- wontfix
firefox89 --- fixed

People

(Reporter: sotaro, Assigned: sotaro)

References

(Blocks 1 open bug)

Details

Crash Data

Attachments

(1 file)

Root WebRenderBridgeParent::Destroy() call expected to destroy RenderCompositor. But it is not destroyed.

On android, it caused a crash with the following log during fallback from RenderCompositorEGL to LayerManagerComposite/CompositorOGL. Only one user could connect to Android Surface.


03-25 13:15:58.270 673 702 E BufferQueueProducer: SurfaceView - org.mozilla.geckoview_example/org.mozilla.geckoview_example.GeckoViewActivity#0 connect: already connected (cur=1 req=1)
03-25 13:15:58.270 31803 31915 E libEGL : eglCreateWindowSurface: native_window_api_connect (win=0xf24cb068) failed (0xffffffea) (already connected to another API?)
03-25 13:15:58.270 31803 31915 E libEGL : eglCreateWindowSurfaceTmpl:725 error 3003 (EGL_BAD_ALLOC)

Assignee: nobody → sotaro.ikeda.g
Blocks: 1697096
Summary: WebRenderBridgeParent::ClearResources() does not destroy related RenderCompositor → WebRenderBridgeParent::Destroy() does not destroy related RenderCompositor

Renderer is destroyed in root's WebRenderAPI::~WebRenderAPI(). But ref of root WebRenderAPI is held by non-rot WebRenderAPI

Then root WebRenderAPI is alive until all non-root WebRenderAPIs are destroyed.

Blocks: 1690752
Blocks: 1597854
Attachment #9211416 - Attachment description: WIP: Bug 1700848 - Destroy RenderCompositor by root WebRenderBridgeParent's ClearResources() → Bug 1700848 - Destroy RenderCompositor by root WebRenderBridgeParent's ClearResources()
Pushed by sikeda.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/89e85fc99112
Destroy RenderCompositor by root WebRenderBridgeParent's ClearResources() r=nical
Blocks: 1532456
Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → 89 Branch

The patch landed in nightly and beta is affected.
:sotaro, is this bug important enough to require an uplift?
If not please set status_beta to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(sotaro.ikeda.g)

Comment on attachment 9211416 [details]
Bug 1700848 - Destroy RenderCompositor by root WebRenderBridgeParent's ClearResources()

Beta/Release Uplift Approval Request

  • User impact if declined: Crash might happen when closing a window, though it is not frequent.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: none
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The change basically used already existing code. It just fixed calling timing.
  • String changes made/needed: none
Flags: needinfo?(sotaro.ikeda.g)
Attachment #9211416 - Flags: approval-mozilla-beta?

Comment on attachment 9211416 [details]
Bug 1700848 - Destroy RenderCompositor by root WebRenderBridgeParent's ClearResources()

Approved for Desktop 88.0b5 & Fenix 88.0.0-beta.3.

Attachment #9211416 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Regressions: 1701559
Attachment #9211416 - Flags: approval-mozilla-beta+ → approval-mozilla-beta-
Duplicate of this bug: 1679368
Crash Signature: [@ mozilla::detail::MutexImpl::~MutexImpl | nsChildView::~nsChildView]
You need to log in before you can comment on or make changes to this bug.