Closed Bug 1809672 Opened 2 years ago Closed 1 years ago

SUMMARY: ThreadSanitizer: data race /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:286:27 in get -- in TabCapturerWebrtc::CaptureFrame lambda

Categories

(Core :: WebRTC: Audio/Video, defect, P3)

defect

Tracking

()

RESOLVED FIXED
115 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox108 --- disabled
firefox109 --- disabled
firefox110 --- disabled
firefox113 --- wontfix
firefox114 --- wontfix
firefox115 --- fixed

People

(Reporter: pehrsons, Assigned: pehrsons)

References

(Regressed 1 open bug, Regression)

Details

(Keywords: regression)

Crash Data

Attachments

(13 files, 1 obsolete file)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
[task 2023-01-11T16:40:58.210Z] 16:40:58     INFO - GECKO(4367) | WARNING: ThreadSanitizer: data race (pid=4367)
[task 2023-01-11T16:40:58.211Z] 16:40:58     INFO - GECKO(4367) |   Read of size 8 at 0x7b08001f6478 by main thread:
[task 2023-01-11T16:40:58.211Z] 16:40:58     INFO - GECKO(4367) |     #0 get /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:286:27 (libxul.so+0x7ff1c1f) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.217Z] 16:40:58     INFO - GECKO(4367) |     #1 operator-> /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:316:12 (libxul.so+0x7ff1c1f)
[task 2023-01-11T16:40:58.217Z] 16:40:58     INFO - GECKO(4367) |     #2 Disconnect /builds/worker/workspace/obj-build/dist/include/mozilla/MozPromise.h:1498:5 (libxul.so+0x7ff1c1f)
[task 2023-01-11T16:40:58.217Z] 16:40:58     INFO - GECKO(4367) |     #3 Disconnect /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.cc:45:32 (libxul.so+0x7ff1c1f)
[task 2023-01-11T16:40:58.217Z] 16:40:58     INFO - GECKO(4367) |     #4 operator() /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.cc:110:28 (libxul.so+0x7ff1c1f)
[task 2023-01-11T16:40:58.220Z] 16:40:58     INFO - GECKO(4367) |     #5 mozilla::detail::ProxyFunctionRunnable<mozilla::TabCapturerWebrtc::CaptureFrame()::$_4, mozilla::MozPromise<RefPtr<mozilla::dom::ImageBitmap>, nsresult, true>>::Run() /builds/worker/workspace/obj-build/dist/include/mozilla/MozPromise.h:1674:29 (libxul.so+0x7ff1c1f)
[task 2023-01-11T16:40:58.220Z] 16:40:58     INFO - GECKO(4367) |     #6 mozilla::TaskQueue::Runner::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskQueue.cpp:259:20 (libxul.so+0x41ca322) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.220Z] 16:40:58     INFO - GECKO(4367) |     #7 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:539:16 (libxul.so+0x41c496f) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.220Z] 16:40:58     INFO - GECKO(4367) |     #8 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:852:26 (libxul.so+0x41bdd4d) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.221Z] 16:40:58     INFO - GECKO(4367) |     #9 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:684:15 (libxul.so+0x41bc2c6) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.224Z] 16:40:58     INFO - GECKO(4367) |     #10 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:462:36 (libxul.so+0x41bc6a0) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.225Z] 16:40:58     INFO - GECKO(4367) |     #11 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:188:37 (libxul.so+0x41c7327) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.225Z] 16:40:58     INFO - GECKO(4367) |     #12 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_2>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:546:5 (libxul.so+0x41c7327)
[task 2023-01-11T16:40:58.226Z] 16:40:58     INFO - GECKO(4367) |     #13 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1197:16 (libxul.so+0x41ddb50) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.226Z] 16:40:58     INFO - GECKO(4367) |     #14 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:476:10 (libxul.so+0x41e46f6) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.227Z] 16:40:58     INFO - GECKO(4367) |     #15 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21 (libxul.so+0x4ec27cb) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.233Z] 16:40:58     INFO - GECKO(4367) |     #16 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4ddb617) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.234Z] 16:40:58     INFO - GECKO(4367) |     #17 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4ddb617)
[task 2023-01-11T16:40:58.234Z] 16:40:58     INFO - GECKO(4367) |     #18 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4ddb617)
[task 2023-01-11T16:40:58.235Z] 16:40:58     INFO - GECKO(4367) |     #19 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x902d236) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.236Z] 16:40:58     INFO - GECKO(4367) |     #20 nsAppStartup::Run() /builds/worker/checkouts/gecko/toolkit/components/startup/nsAppStartup.cpp:295:30 (libxul.so+0xb9dce13) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.237Z] 16:40:58     INFO - GECKO(4367) |     #21 XREMain::XRE_mainRun() /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5784:22 (libxul.so+0xbb432c1) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.239Z] 16:40:58     INFO - GECKO(4367) |     #22 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5977:8 (libxul.so+0xbb43e41) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.240Z] 16:40:58     INFO - GECKO(4367) |     #23 XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:6033:21 (libxul.so+0xbb4452c) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.241Z] 16:40:58     INFO - GECKO(4367) |     #24 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xbb513a2) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.242Z] 16:40:58     INFO - GECKO(4367) |     #25 do_main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:226:22 (firefox-bin+0x134a49) (BuildId: e4982d71067d1143ab91939952464495fdadc13a)
[task 2023-01-11T16:40:58.243Z] 16:40:58     INFO - GECKO(4367) |     #26 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:429:16 (firefox-bin+0x134a49)
[task 2023-01-11T16:40:58.245Z] 16:40:58     INFO - GECKO(4367) |   Previous write of size 8 at 0x7b08001f6478 by thread T131:
[task 2023-01-11T16:40:58.245Z] 16:40:58     INFO - GECKO(4367) |     #0 assign_assuming_AddRef /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:67:13 (libxul.so+0x7fdd358) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.246Z] 16:40:58     INFO - GECKO(4367) |     #1 operator=<mozilla::MozPromise<RefPtr<mozilla::dom::ImageBitmap>, nsresult, true>::Request> /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:198:5 (libxul.so+0x7fdd358)
[task 2023-01-11T16:40:58.248Z] 16:40:58     INFO - GECKO(4367) |     #2 Track /builds/worker/workspace/obj-build/dist/include/mozilla/MozPromise.h:1486:14 (libxul.so+0x7fdd358)
[task 2023-01-11T16:40:58.249Z] 16:40:58     INFO - GECKO(4367) |     #3 Track /builds/worker/workspace/obj-build/dist/include/mozilla/MozPromise.h:1016:22 (libxul.so+0x7fdd358)
[task 2023-01-11T16:40:58.251Z] 16:40:58     INFO - GECKO(4367) |     #4 mozilla::TabCapturerWebrtc::CaptureFrame() /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.cc:151:9 (libxul.so+0x7fdd358)
[task 2023-01-11T16:40:58.252Z] 16:40:58     INFO - GECKO(4367) |     #5 ProcessIter /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:701:14 (libxul.so+0x7fdb414) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.254Z] 16:40:58     INFO - GECKO(4367) |     #6 process /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:682:5 (libxul.so+0x7fdb414)
[task 2023-01-11T16:40:58.255Z] 16:40:58     INFO - GECKO(4367) |     #7 operator() /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:592:26 (libxul.so+0x7fdb414)
[task 2023-01-11T16:40:58.257Z] 16:40:58     INFO - GECKO(4367) |     #8 std::_Function_handler<void (), webrtc::DesktopCaptureImpl::LazyInitCaptureThread()::$_23>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:316:2 (libxul.so+0x7fdb414)
[task 2023-01-11T16:40:58.258Z] 16:40:58     INFO - GECKO(4367) |     #9 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:706:14 (libxul.so+0xb118268) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.259Z] 16:40:58     INFO - GECKO(4367) |     #10 operator() /builds/worker/checkouts/gecko/third_party/libwebrtc/rtc_base/platform_thread.cc:191:9 (libxul.so+0xb118268)
[task 2023-01-11T16:40:58.259Z] 16:40:58     INFO - GECKO(4367) |     #11 std::_Function_handler<void (), rtc::PlatformThread::SpawnThread(std::function<void ()>, absl::string_view, rtc::ThreadAttributes, bool)::$_1>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:316:2 (libxul.so+0xb118268)
[task 2023-01-11T16:40:58.260Z] 16:40:58     INFO - GECKO(4367) |     #12 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:706:14 (libxul.so+0xb1180a5) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.261Z] 16:40:58     INFO - GECKO(4367) |     #13 rtc::(anonymous namespace)::RunPlatformThread(void*) /builds/worker/checkouts/gecko/third_party/libwebrtc/rtc_base/platform_thread.cc:103:3 (libxul.so+0xb1180a5)
[task 2023-01-11T16:40:58.262Z] 16:40:58     INFO - GECKO(4367) |   Location is heap block of size 32 at 0x7b08001f6460 allocated by thread T131:
[task 2023-01-11T16:40:58.263Z] 16:40:58     INFO - GECKO(4367) |     #0 malloc /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:667:5 (firefox-bin+0xb2471) (BuildId: e4982d71067d1143ab91939952464495fdadc13a)
[task 2023-01-11T16:40:58.264Z] 16:40:58     INFO - GECKO(4367) |     #1 moz_xmalloc /builds/worker/checkouts/gecko/memory/mozalloc/mozalloc.cpp:52:15 (firefox-bin+0x1369fb) (BuildId: e4982d71067d1143ab91939952464495fdadc13a)
[task 2023-01-11T16:40:58.265Z] 16:40:58     INFO - GECKO(4367) |     #2 operator new /builds/worker/workspace/obj-build/dist/include/mozilla/cxxalloc.h:33:10 (libxul.so+0x7fdcf55) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.266Z] 16:40:58     INFO - GECKO(4367) |     #3 MakeRefPtr<mozilla::CaptureFrameRequest> /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:603:15 (libxul.so+0x7fdcf55)
[task 2023-01-11T16:40:58.266Z] 16:40:58     INFO - GECKO(4367) |     #4 mozilla::TabCapturerWebrtc::CaptureFrame() /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.cc:105:18 (libxul.so+0x7fdcf55)
[task 2023-01-11T16:40:58.267Z] 16:40:58     INFO - GECKO(4367) |     #5 ProcessIter /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:701:14 (libxul.so+0x7fdb414) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.267Z] 16:40:58     INFO - GECKO(4367) |     #6 process /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:682:5 (libxul.so+0x7fdb414)
[task 2023-01-11T16:40:58.268Z] 16:40:58     INFO - GECKO(4367) |     #7 operator() /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:592:26 (libxul.so+0x7fdb414)
[task 2023-01-11T16:40:58.269Z] 16:40:58     INFO - GECKO(4367) |     #8 std::_Function_handler<void (), webrtc::DesktopCaptureImpl::LazyInitCaptureThread()::$_23>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:316:2 (libxul.so+0x7fdb414)
[task 2023-01-11T16:40:58.270Z] 16:40:58     INFO - GECKO(4367) |     #9 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:706:14 (libxul.so+0xb118268) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.270Z] 16:40:58     INFO - GECKO(4367) |     #10 operator() /builds/worker/checkouts/gecko/third_party/libwebrtc/rtc_base/platform_thread.cc:191:9 (libxul.so+0xb118268)
[task 2023-01-11T16:40:58.271Z] 16:40:58     INFO - GECKO(4367) |     #11 std::_Function_handler<void (), rtc::PlatformThread::SpawnThread(std::function<void ()>, absl::string_view, rtc::ThreadAttributes, bool)::$_1>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:316:2 (libxul.so+0xb118268)
[task 2023-01-11T16:40:58.271Z] 16:40:58     INFO - GECKO(4367) |     #12 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:706:14 (libxul.so+0xb1180a5) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.272Z] 16:40:58     INFO - GECKO(4367) |     #13 rtc::(anonymous namespace)::RunPlatformThread(void*) /builds/worker/checkouts/gecko/third_party/libwebrtc/rtc_base/platform_thread.cc:103:3 (libxul.so+0xb1180a5)
[task 2023-01-11T16:40:58.272Z] 16:40:58     INFO - GECKO(4367) |   Thread T131 'ScreenC~eThread' (tid=4825, running) created by thread T89 at:
[task 2023-01-11T16:40:58.273Z] 16:40:58     INFO - GECKO(4367) |     #0 pthread_create /builds/worker/fetches/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 (firefox-bin+0xb3bdd) (BuildId: e4982d71067d1143ab91939952464495fdadc13a)
[task 2023-01-11T16:40:58.274Z] 16:40:58     INFO - GECKO(4367) |     #1 rtc::PlatformThread::SpawnThread(std::function<void ()>, absl::string_view, rtc::ThreadAttributes, bool) /builds/worker/checkouts/gecko/third_party/libwebrtc/rtc_base/platform_thread.cc:212:3 (libxul.so+0xb117e3e) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.274Z] 16:40:58     INFO - GECKO(4367) |     #2 rtc::PlatformThread::SpawnJoinable(std::function<void ()>, absl::string_view, rtc::ThreadAttributes) /builds/worker/checkouts/gecko/third_party/libwebrtc/rtc_base/platform_thread.cc:135:10 (libxul.so+0xb117ba5) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.275Z] 16:40:58     INFO - GECKO(4367) |     #3 webrtc::DesktopCaptureImpl::LazyInitCaptureThread() /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:591:45 (libxul.so+0x7fbd35c) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.276Z] 16:40:58     INFO - GECKO(4367) |     #4 StartCapture /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc:615:3 (libxul.so+0x7fbd5e9) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.277Z] 16:40:58     INFO - GECKO(4367) |     #5 non-virtual thunk to webrtc::DesktopCaptureImpl::StartCapture(webrtc::VideoCaptureCapability const&) /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/desktop_capture_impl.cc (libxul.so+0x7fbd5e9)
[task 2023-01-11T16:40:58.277Z] 16:40:58     INFO - GECKO(4367) |     #6 operator() /builds/worker/checkouts/gecko/dom/media/systemservices/CamerasParent.cpp:943:41 (libxul.so+0x7fcc90f) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.278Z] 16:40:58     INFO - GECKO(4367) |     #7 std::_Function_handler<void (mozilla::camera::VideoEngine::CaptureEntry&), mozilla::camera::CamerasParent::RecvStartCapture(mozilla::camera::CaptureEngine const&, int const&, mozilla::camera::VideoCaptureCapability const&)::$_10::operator()() const::'lambda'(mozilla::camera::VideoEngine::CaptureEntry&)>::_M_invoke(std::_Any_data const&, mozilla::camera::VideoEngine::CaptureEntry&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:316:2 (libxul.so+0x7fcc90f)
[task 2023-01-11T16:40:58.279Z] 16:40:58     INFO - GECKO(4367) |     #8 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:706:14 (libxul.so+0x7fcbceb) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.279Z] 16:40:58     INFO - GECKO(4367) |     #9 WithEntry /builds/worker/checkouts/gecko/dom/media/systemservices/VideoEngine.cpp:222:3 (libxul.so+0x7fcbceb)
[task 2023-01-11T16:40:58.280Z] 16:40:58     INFO - GECKO(4367) |     #10 operator() /builds/worker/checkouts/gecko/dom/media/systemservices/CamerasParent.cpp:856:35 (libxul.so+0x7fcbceb)
[task 2023-01-11T16:40:58.281Z] 16:40:58     INFO - GECKO(4367) |     #11 mozilla::media::LambdaRunnable<mozilla::camera::CamerasParent::RecvStartCapture(mozilla::camera::CaptureEngine const&, int const&, mozilla::camera::VideoCaptureCapability const&)::$_10>::Run() /builds/worker/workspace/obj-build/dist/include/mozilla/media/MediaUtils.h:77:27 (libxul.so+0x7fcbceb)
[task 2023-01-11T16:40:58.281Z] 16:40:58     INFO - GECKO(4367) |     #12 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1191:16 (libxul.so+0x41dddb4) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.282Z] 16:40:58     INFO - GECKO(4367) |     #13 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:476:10 (libxul.so+0x41e46f6) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.283Z] 16:40:58     INFO - GECKO(4367) |     #14 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:330:5 (libxul.so+0x4ec3458) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.284Z] 16:40:58     INFO - GECKO(4367) |     #15 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:381:10 (libxul.so+0x4ddb617) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.284Z] 16:40:58     INFO - GECKO(4367) |     #16 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:374:3 (libxul.so+0x4ddb617)
[task 2023-01-11T16:40:58.284Z] 16:40:58     INFO - GECKO(4367) |     #17 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:356:3 (libxul.so+0x4ddb617)
[task 2023-01-11T16:40:58.285Z] 16:40:58     INFO - GECKO(4367) |     #18 base::Thread::ThreadMain() /builds/worker/checkouts/gecko/ipc/chromium/src/base/thread.cc:187:16 (libxul.so+0x4dfc892) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.285Z] 16:40:58     INFO - GECKO(4367) |     #19 ThreadFunc(void*) /builds/worker/checkouts/gecko/ipc/chromium/src/base/platform_thread_posix.cc:40:13 (libxul.so+0x4de78be) (BuildId: aee5b3a9f96dd1b3cd459bd2d5335c43bc088ea7)
[task 2023-01-11T16:40:58.286Z] 16:40:58     INFO - GECKO(4367) | SUMMARY: ThreadSanitizer: data race /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:286:27 in get

Found in this try run.

Duplicate of this bug: 1818271

Copying crash signatures from duplicate bugs.

Crash Signature: [@ mozilla::MozPromiseRequestHolder<T>::Disconnect]

The severity field for this bug is set to S4. However, the following bug duplicate has higher severity:

:pehrsons, could you consider increasing the severity of this bug to S3?

For more information, please visit auto_nag documentation.

Flags: needinfo?(apehrson)
Flags: needinfo?(apehrson)

This restores libwebrtc's DesktopCapturer to their upstream state as far as
the tab capturer is concerned.

This will not only benefit the assumptions that can be made on the backend
side. It also means we will not shift focus to an external window in case a
window capture fails to start, of if an audio device that is part of the same
request fails to start.

Since we now know FocusOnSelectedSource will only be called after StartCapture()
there is no need for it to be able to create a capturer. This means
EnsureCapturer() has only one caller and can be inlined into StartCapture().

Note that this patch breaks the (verbose) capturer creation logic out to a
static function, but mCapturer and mCaptureThread assignment happens exclusively
in StartCapture().

This is on par with other DesktopCapturer implementations.

This patch creates the desktop capture thread only once needed, and then passes
it to the TabCapturerWebrtc ctor so its threading members can be const.

This patch eliminates the race that bug 1809672 points out, and as a bonus it
significantly reduces the number of main thread hops.

The Track() was on the capture thread, but Disconnect() on the main thread.

This fixes an assertion failure in ~ScreenCapturerMac() which checks that it
runs on the capture thread.

rtc::SequenceChecker on first use (in IsCurrent()) will set the valid taskqueue,
(on Mac) dispatch queue and platform thread that it should check against in
future calls.

In such a future call to IsCurrent() they are then checked in that order, but
the dispatch queue check is flawed, as in it will always be valid, and
background threads that are not part of a dispatch queue will always return the
same C string ("ref"). The code in IsCurrent() therefore never reaches the
platform thread check. See bugs.webrtc.org/15146.

This patch makes the VideoCapture and DesktopCapture threads visible to
TaskQueueBase::Current() which if visible when a rtc::SequenceChecker gets
attached makes the task queue check take precedence over the dispatch queue
check. This lets us detect threading issues in video capture code, for now.

Attachment #9331375 - Attachment description: Bug 1809672 - Make rtc::SequenceChecker usable on the VideoCapture and DesktopCapture threads on Mac. r?karlt! → Bug 1809672 - Make webrtc::SequenceChecker effective on the VideoCapture and DesktopCapture threads on Mac. r?karlt!
Depends on: 1832751
Attachment #9331375 - Attachment is obsolete: true
Pushed by pehrsons@gmail.com: https://hg.mozilla.org/integration/autoland/rev/3778b2a0e3f9 Refactor TabCapturerWebrtc creation. r=ng,webrtc-reviewers https://hg.mozilla.org/integration/autoland/rev/fd3fa857004b Make TabCapturerWebrtc::mBrowsingId const. r=karlt https://hg.mozilla.org/integration/autoland/rev/3cdf36c3dfca In MediaManager call FocusOnSelectedSource only after the device successfully started. r=karlt https://hg.mozilla.org/integration/autoland/rev/8f4021e9b26a In DesktopCaptureImpl use std::stoi instead of atoi. r=ng https://hg.mozilla.org/integration/autoland/rev/e600c7dcf259 In DesktopCaptureImpl inline EnsureCapturer. r=ng https://hg.mozilla.org/integration/autoland/rev/33a3fd5e6698 Only touch DesktopCaptureImpl::mCapturer on the DesktopCapture thread. r=karlt https://hg.mozilla.org/integration/autoland/rev/1f7f58b57357 Remove DesktopCaptureImpl::mRunning. r=ng https://hg.mozilla.org/integration/autoland/rev/81a91f6bc367 Use webrtc::SequenceChecker and RTC_GUARDED_BY for static analysis of threads in DesktopCaptureImpl. r=karlt https://hg.mozilla.org/integration/autoland/rev/869c4d29b59f Mozify some argument names in TabCapturerWebrtc. r=karlt https://hg.mozilla.org/integration/autoland/rev/3513773734f4 In TabCapturerWebrtc::Start do not call CaptureFrame. r=karlt https://hg.mozilla.org/integration/autoland/rev/0360a05056ed Make TabCapturerWebrtc thread members const. r=karlt https://hg.mozilla.org/integration/autoland/rev/065643399c92 Move TabCapturerWebrtc::mRequests to the callback thread. r=karlt https://hg.mozilla.org/integration/autoland/rev/3c72ca1b13e1 Improve TabCapturerWebrtc log messages. r=karlt
Regressed by: 1869145
No longer regressed by: 1869145
Regressions: 1869145
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: