Closed Bug 1691556 Opened 3 years ago Closed 3 years ago

Intermittent Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Stale shared external image key (add)!), at /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderBridgeParent.cpp:742

Categories

(Core :: Graphics: WebRender, defect, P5)

defect

Tracking

()

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

People

(Reporter: intermittent-bug-filer, Assigned: aosmond)

References

Details

(Keywords: assertion, intermittent-failure)

Attachments

(1 file)

Filed by: nbeleuzu [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=329243787&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/c9UHli-7Qoa-p3DSHBwQ6Q/runs/0/artifacts/public/logs/live_backing.log


[task 2021-02-08T17:21:30.325Z] 17:21:30     INFO - GECKO(1558) | [Parent 1558: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 100 (0x18a37b800) [pid = 1558] [serial = 1160] [outer = 0x1511393c0]
[task 2021-02-08T17:21:30.509Z] 17:21:30     INFO - GECKO(1558) | Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Stale shared external image key (add)!), at /builds/worker/checkouts/gecko/gfx/layers/wr/WebRenderBridgeParent.cpp:742
[task 2021-02-08T17:21:30.509Z] 17:21:30     INFO - GECKO(1558) | #01: mozilla::layers::WebRenderBridgeParent::UpdateResources(nsTArray<mozilla::layers::OpUpdateResource> const&, nsTArray<mozilla::layers::RefCountedShmem> const&, nsTArray<mozilla::ipc::Shmem> const&, mozilla::wr::TransactionBuilder&) [gfx/layers/wr/WebRenderBridgeParent.cpp:581]
[task 2021-02-08T17:21:30.509Z] 17:21:30     INFO - GECKO(1558) | #02: mozilla::layers::WebRenderBridgeParent::RecvUpdateResources(mozilla::wr::IdNamespace const&, nsTArray<mozilla::layers::OpUpdateResource>&&, nsTArray<mozilla::layers::RefCountedShmem>&&, nsTArray<mozilla::ipc::Shmem>&&) [gfx/layers/wr/WebRenderBridgeParent.cpp:915]
[task 2021-02-08T17:21:30.509Z] 17:21:30     INFO - GECKO(1558) | #03: mozilla::layers::PWebRenderBridgeParent::OnMessageReceived(IPC::Message const&) [s3:gecko-generated-sources:49259c4a427ea31f1cb8967c6f8f898ec923bdc58fec4aa56f25fec8a767a00dc33ffc186e2830f98cb14324196aad5e1baf05b520985c030345fb935d5b6108/ipc/ipdl/PWebRenderBridgeParent.cpp::642]
[task 2021-02-08T17:21:30.510Z] 17:21:30     INFO - GECKO(1558) | #04: mozilla::layers::PCompositorManagerParent::OnMessageReceived(IPC::Message const&) [s3:gecko-generated-sources:465f788c5c2153f2808bde1001998ab167eaff20dd748295e96a4079a3456cfd1a822dbe432109311fce0091cc1cbeee521673d1eb10a143fbb293f855779e0e/ipc/ipdl/PCompositorManagerParent.cpp::205]
[task 2021-02-08T17:21:30.510Z] 17:21:30     INFO - GECKO(1558) | #05: mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) [ipc/glue/MessageChannel.cpp:2154]
[task 2021-02-08T17:21:30.510Z] 17:21:30     INFO - GECKO(1558) | #06: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) [ipc/glue/MessageChannel.cpp:2077]
[task 2021-02-08T17:21:30.510Z] 17:21:30     INFO - GECKO(1558) | #07: mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) [ipc/glue/MessageChannel.cpp:1925]
[task 2021-02-08T17:21:30.510Z] 17:21:30     INFO - GECKO(1558) | #08: mozilla::ipc::MessageChannel::MessageTask::Run() [ipc/glue/MessageChannel.cpp:1958]
[task 2021-02-08T17:21:30.510Z] 17:21:30     INFO - GECKO(1558) | #09: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1152]
[task 2021-02-08T17:21:30.511Z] 17:21:30     INFO - GECKO(1558) | #10: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:548]
[task 2021-02-08T17:21:30.511Z] 17:21:30     INFO - GECKO(1558) | #11: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:303]
[task 2021-02-08T17:21:30.511Z] 17:21:30     INFO - GECKO(1558) | #12: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:311]
[task 2021-02-08T17:21:30.511Z] 17:21:30     INFO - GECKO(1558) | #13: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:393]
[task 2021-02-08T17:21:30.763Z] 17:21:30     INFO - GECKO(1558) | #14: _pt_root [nsprpub/pr/src/pthreads/ptthread.c:204]
[task 2021-02-08T17:21:30.771Z] 17:21:30     INFO - GECKO(1558) | #15: _pthread_body [/usr/lib/system/libsystem_pthread.dylib + 0x32eb]
[task 2021-02-08T17:21:30.771Z] 17:21:30     INFO - GECKO(1558) | #16: _pthread_start [/usr/lib/system/libsystem_pthread.dylib + 0x6249]
[task 2021-02-08T17:21:30.772Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.772Z] 17:21:30     INFO - GECKO(1558) | [GFX1-]: Receive IPC close with reason=AbnormalShutdown
[task 2021-02-08T17:21:30.772Z] 17:21:30     INFO - GECKO(1558) | [GFX1-]: Receive IPC close with reason=AbnormalShutdown
[task 2021-02-08T17:21:30.772Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.773Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.774Z] 17:21:30     INFO - GECKO(1558) | Exiting due to channel error.
[task 2021-02-08T17:21:30.774Z] 17:21:30     INFO - GECKO(1558) | [RDD 1570, Main Thread] WARNING: Shutting down RDD process early due to a crash!: file /builds/worker/checkouts/gecko/dom/media/ipc/RDDParent.cpp:259
[task 2021-02-08T17:21:30.818Z] 17:21:30     INFO - TEST-INFO | Main app process: exit 1
[task 2021-02-08T17:21:30.818Z] 17:21:30    ERROR - TEST-UNEXPECTED-FAIL | ShutdownLeaks | process() called before end of test suite
[task 2021-02-08T17:21:30.819Z] 17:21:30     INFO - TEST-INFO | Confirming we saw 2388 DOCSHELL created and 2336 destroyed log strings.
[task 2021-02-08T17:21:30.819Z] 17:21:30     INFO - TEST-INFO | Confirming we saw 6402 DOMWINDOW created and 6251 destroyed log strings.
[task 2021-02-08T17:21:30.819Z] 17:21:30     INFO - Buffered messages logged at 17:21:17
[task 2021-02-08T17:21:30.819Z] 17:21:30     INFO - Entering test bound no_cookies_permission```
See Also: → 1645841
Component: Graphics: Layers → Graphics: WebRender

For the add operation, this must be when we used AsyncResourceUpdates() to queue an add:

https://searchfox.org/mozilla-central/rev/aa9a7136835deb0eeba00c62bb50a4a0e2cdea2d/gfx/layers/wr/WebRenderUserData.cpp#125

and before it was sent to the compositor process, we reset the namespace for the WRBC.

Assignee: nobody → aosmond
Status: NEW → ASSIGNED
OS: Unspecified → All
Hardware: Unspecified → All

When the ID namespace changes for a WebRenderBridgeChild, all bindings
from that namespace are now invalid. We already drop any outstanding
async animation holds on surfaces for recycling, but we still would try
to send out async resource updates that were already queued before the
namespace was changed. This patch forces us to drop those now defunct
transactions.

Pushed by aosmond@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5c9e27c5a0e3
Drop stale async resource updates after a namespace change. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: