Closed Bug 1630054 Opened 4 years ago Closed 4 years ago

WebGPU swapchain cleanup incorrectly destroys the staging buffers

Categories

(Core :: Graphics: WebGPU, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: kvark, Assigned: kvark)

Details

Attachments

(1 file)

Using host libthread_db library "/usr/lib64/libthread_db.so.1".
0x00007fb20c7643bf in __GI___poll (fds=0x7fb1ee034840, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29	../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) bt
#0  0x00007fb20c7643bf in __GI___poll (fds=0x7fb1ee034840, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fb204ee422d in PollWrapper(_GPollFD*, unsigned int, int) (ufds=0x7fb1ee034840, nfsd=3, timeout_=-1) at /mnt/code/firefox/widget/gtk/nsAppShell.cpp:59
#2  0x00007fb20a92301e in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007fb20a92313f in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#4  0x00007fb204ee43a5 in nsAppShell::ProcessNextNativeEvent(bool) (this=<optimized out>, mayWait=3) at /mnt/code/firefox/widget/gtk/nsAppShell.cpp:280
#5  0x00007fb204e9343e in nsBaseAppShell::DoProcessNextNativeEvent(bool) (this=0x7fb20c45b430, mayWait=3) at /mnt/code/firefox/widget/nsBaseAppShell.cpp:120
#6  0x00007fb204e93704 in nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool) (this=0x7fb20c45b430, thr=0x7fb20c494350, mayWait=<optimized out>)
    at /mnt/code/firefox/widget/nsBaseAppShell.cpp:259
#7  0x00007fb204e93829 in non-virtual thunk to nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool) () at /mnt/code/firefox/obj-x86_64-pc-linux-gnu/dist/bin/libxul.so
#8  0x00007fb201e3abb1 in nsThread::ProcessNextEvent(bool, bool*) (this=0x7fb20c494350, aMayWait=<optimized out>, aResult=0x7fff4d4e0fc7)
    at /mnt/code/firefox/xpcom/threads/nsThread.cpp:1104
#9  0x00007fb201e3e4a3 in NS_ProcessNextEvent(nsIThread*, bool) (aThread=0x7fb1ee034840, aMayWait=true) at /mnt/code/firefox/xpcom/threads/nsThreadUtils.cpp:481
#10 0x00007fb2024fa67b in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0x7fb20c4ab600, aDelegate=0x7fff4d4e1230)
    at /mnt/code/firefox/ipc/glue/MessagePump.cpp:109
#11 0x00007fb202481c87 in MessageLoop::RunInternal() (this=0x7fff4d4e1230) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:315
#12 0x00007fb202481bdf in MessageLoop::RunHandler() (this=0x7fff4d4e1230) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:308
#13 0x00007fb202481bdf in MessageLoop::Run() (this=0x7fff4d4e1230) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:290
#14 0x00007fb204e93489 in nsBaseAppShell::Run() (this=0x7fb20c45b430) at /mnt/code/firefox/widget/nsBaseAppShell.cpp:137
#15 0x00007fb2062cf6b1 in XRE_RunAppShell() () at /mnt/code/firefox/toolkit/xre/nsEmbedFunctions.cpp:909
#16 0x00007fb2024fac65 in mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) (this=0x7fb20c4ab600, aDelegate=0x7fff4d4e1230)
    at /mnt/code/firefox/ipc/glue/MessagePump.cpp:237
#17 0x00007fb202481c87 in MessageLoop::RunInternal() (this=0x7fff4d4e1230) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:315
#18 0x00007fb202481bdf in MessageLoop::RunHandler() (this=0x7fff4d4e1230) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:308
#19 0x00007fb202481bdf in MessageLoop::Run() (this=0x7fff4d4e1230) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:290
#20 0x00007fb2062cef27 in XRE_InitChildProcess(int, char**, XREChildData const*) (aArgc=10, aArgv=0x7fff4d4e26a8, aChildData=<optimized out>)
    at /mnt/code/firefox/toolkit/xre/nsEmbedFunctions.cpp:740
#21 0x0000562bd81db15e in content_process_main(mozilla::Bootstrap*, int, char**) (bootstrap=0x7fb20c402930, argc=12, argv=0x7fff4d4e26a8)
    at /mnt/code/firefox/browser/app/../../ipc/contentproc/plugin-container.cpp:56
#22 0x0000562bd81db4e8 in main(int, char**, char**) (argc=3, argv=0xffffffff, envp=<optimized out>) at /mnt/code/firefox/browser/app/nsBrowserApp.cpp:303
(gdb) t 2
[Switching to thread 2 (Thread 0x7fb1fbd32700 (LWP 467883))]
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
38	../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory.
(gdb) bt
#0  0x00007fb20c769e3d in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fb2024a5218 in epoll_wait (epfd=206360704, events=<optimized out>, maxevents=209100349, timeout=<optimized out>)
    at /mnt/code/firefox/ipc/chromium/src/third_party/libevent/epoll_sub.c:64
#2  0x00007fb2024a5218 in epoll_dispatch (base=0x7fb20c425800, tv=<optimized out>) at /mnt/code/firefox/ipc/chromium/src/third_party/libevent/epoll.c:462
#3  0x00007fb2024ae3a6 in event_base_loop (base=0x7fb20c425800, flags=<optimized out>) at /mnt/code/firefox/ipc/chromium/src/third_party/libevent/event.c:1947
#4  0x00007fb2024838ff in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) (this=0x7fb20c4cc0c0, delegate=0x7fb1fbd31c90)
    at /mnt/code/firefox/ipc/chromium/src/base/message_pump_libevent.cc:344
#5  0x00007fb202481c87 in MessageLoop::RunInternal() (this=0x7fb1fbd31c90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:315
#6  0x00007fb202481bdf in MessageLoop::RunHandler() (this=0x7fb1fbd31c90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:308
#7  0x00007fb202481bdf in MessageLoop::Run() (this=0x7fb1fbd31c90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:290
#8  0x00007fb20249094e in base::Thread::ThreadMain() (this=0x7fb20c462348) at /mnt/code/firefox/ipc/chromium/src/base/thread.cc:192
#9  0x00007fb202487c65 in ThreadFunc(void*) (closure=0x4) at /mnt/code/firefox/ipc/chromium/src/base/platform_thread_posix.cc:40
#10 0x00007fb20cbb0606 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007fb20c770753 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) t 3
[Switching to thread 3 (Thread 0x7fb1fbcbc700 (LWP 467884))]
#0  0x00007fb20c72f331 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7fb1fbcba6e0, rem=rem@entry=0x7fb1fbcba6e0)
    at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
48	../sysdeps/unix/sysv/linux/clock_nanosleep.c: No such file or directory.
(gdb) bt
#0  0x00007fb20c72f331 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7fb1fbcba6e0, rem=rem@entry=0x7fb1fbcba6e0)
    at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1  0x00007fb20c734d07 in __GI___nanosleep (requested_time=requested_time@entry=0x7fb1fbcba6e0, remaining=remaining@entry=0x7fb1fbcba6e0) at nanosleep.c:27
#2  0x00007fb20c734c3e in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55
#3  0x00007fb2062d3649 in ah_crap_handler(int) (signum=11) at /mnt/code/firefox/toolkit/xre/nsSigHandlers.cpp:95
#4  0x00007fb20c695a40 in <signal handler called> () at /usr/lib/haswell/libc.so.6
#5  0x00007fb2081dbbb1 in MOZ_Crash(char const*, int, char const*) (aFilename=<optimized out>, aLine=785, aReason=0x7fb1fbcbb012 "key not present")
    at /mnt/code/firefox/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Assertions.h:332
#6  0x00007fb2081dbbb1 in RustMozCrash(char const*, int, char const*) (aFilename=<optimized out>, aLine=785, aReason=0x7fb1fbcbb012 "key not present") at wrappers.cpp:17
#7  0x00007fb2081dad67 in mozglue_static::panic_hook (info=<optimized out>) at mozglue/static/rust/lib.rs:89
#8  0x00007fb2081da93c in core::ops::function::Fn::call () at /rustc/b8cedc00407a4c56a3bda1ed605c6fc166655447/src/libcore/ops/function.rs:72
#9  0x00007fb2094ffbad in std::panicking::rust_panic_with_hook () at src/libstd/panicking.rs:476
#10 0x00007fb2094ff6c0 in rust_begin_unwind () at src/libstd/panicking.rs:380
#11 0x00007fb2095311a1 in core::panicking::panic_fmt () at src/libcore/panicking.rs:85
#12 0x00007fb209530d83 in core::option::expect_failed () at src/libcore/option.rs:1191
#13 0x00007fb20761c6a6 in core::option::Option<T>::expect (self=..., msg=...) at /rustc/b8cedc00407a4c56a3bda1ed605c6fc166655447/src/libcore/option.rs:347
#14 0x00007fb207623c76 in <wgpu_core::hub::Storage<T,I> as core::ops::index::IndexMut<I>>::index_mut (self=0x7fb20c83b310 <_IO_stdfile_2_lock>, id=...)
    at /mnt/code/firefox/gfx/wgpu/wgpu-core/src/hub.rs:92
#15 0x00007fb20762c360 in wgpu_core::device::<impl wgpu_core::hub::Global<G>>::buffer_destroy (self=<optimized out>, buffer_id=...)
    at /mnt/code/firefox/gfx/wgpu/wgpu-core/src/device/mod.rs:640
#16 0x00007fb20427295b in mozilla::webgpu::WebGPUParent::RecvSwapChainDestroy(mozilla::wr::ExternalImageId) (this=0x7fb1e6f8fca0, aExternalId=...)
    at /mnt/code/firefox/dom/webgpu/ipc/WebGPUParent.cpp:718
#17 0x00007fb2028ac954 in mozilla::webgpu::PWebGPUParent::OnMessageReceived(IPC::Message const&) (this=0x7fb1e6f8fca0, msg__=...) at PWebGPUParent.cpp:2330
#18 0x00007fb2025c4a0c in mozilla::layers::PCompositorManagerParent::OnMessageReceived(IPC::Message const&) (this=0x7fb1e6fb1000, msg__=...) at PCompositorManagerParent.cpp:197
#19 0x00007fb2024f8645 in mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&)
    (this=0x7fb1e6fb1110, aProxy=0x7fb1e701bb40, aMsg=...) at /mnt/code/firefox/ipc/glue/MessageChannel.cpp:2187
#20 0x00007fb2024f738e in mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) (this=0x7fb1e6fb1110, aMsg=...) at /mnt/code/firefox/ipc/glue/MessageChannel.cpp:2111
#21 0x00007fb2024f7adb in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) (this=0x7fb1e6fb1110, aTask=...)
    at /mnt/code/firefox/ipc/glue/MessageChannel.cpp:1959
#22 0x00007fb2024f7e22 in mozilla::ipc::MessageChannel::MessageTask::Run() (this=0x7fb1e0f617a0) at /mnt/code/firefox/ipc/glue/MessageChannel.cpp:1990
#23 0x00007fb202481e0c in MessageLoop::RunTask(already_AddRefed<nsIRunnable>) (this=0x7fb1fbcbbc90, aTask=...) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:442
#24 0x00007fb2024823ad in MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask&&) (this=0x7fb1fbcbbc90, pending_task=...)
    at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:450
#25 0x00007fb2024825dc in MessageLoop::DoWork() (this=0x7fb1fbcbbc90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:523
#26 0x00007fb202482fee in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) (this=0x7fb1fbb29970, delegate=0x7fb1fbcbbc90)
    at /mnt/code/firefox/ipc/chromium/src/base/message_pump_default.cc:35
#27 0x00007fb202481c87 in MessageLoop::RunInternal() (this=0x7fb1fbcbbc90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:315
#28 0x00007fb202481bdf in MessageLoop::RunHandler() (this=0x7fb1fbcbbc90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:308
#29 0x00007fb202481bdf in MessageLoop::Run() (this=0x7fb1fbcbbc90) at /mnt/code/firefox/ipc/chromium/src/base/message_loop.cc:290
#30 0x00007fb20249094e in base::Thread::ThreadMain() (this=0x7fb20c4abb00) at /mnt/code/firefox/ipc/chromium/src/base/thread.cc:192
#31 0x00007fb202487c65 in ThreadFunc(void*) (closure=0x7fb20c83b310 <_IO_stdfile_2_lock>) at /mnt/code/firefox/ipc/chromium/src/base
Pushed by dmalyshau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9a368c356107
Properly free WebGPU swapchain buffers r=jgilbert
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: