Open Bug 1648606 Opened 3 months ago Updated 2 months ago

Data race in mozilla::DataChannelConnection::DestroyOnSTS

Categories

(Core :: WebRTC: Networking, defect, P3)

defect

Tracking

()

ASSIGNED

People

(Reporter: bwc, Assigned: bwc)

References

(Blocks 1 open bug)

Details

(Keywords: leave-open)

Attachments

(1 file)

Another TSan problem:

1:18.65 GECKO(2867385) ==================
1:18.65 GECKO(2867385) WARNING: ThreadSanitizer: data race (pid=2867504)
1:18.65 GECKO(2867385) Atomic write of size 4 at 0x7b64000a0b58 by thread T5:
1:18.65 GECKO(2867385) #0 __tsan_atomic32_compare_exchange_val /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc:844:3 (firefox+0xf0efa)
1:18.65 GECKO(2867385) #1 sctp_close /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_usrreq.c:867:7 (libxul.so+0x6620e00)
1:18.65 GECKO(2867385) #2 sofree /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/user_socket.c:283:2 (libxul.so+0x66445ef)
1:18.65 GECKO(2867385) #3 usrsctp_close /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/user_socket.c:2180:3 (libxul.so+0x6647fe4)
1:18.65 GECKO(2867385) #4 mozilla::DataChannelConnection::DestroyOnSTS(socket*, socket*) /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:409:22 (libxul.so+0x664d45b)
1:18.65 GECKO(2867385) #5 __invoke_impl<void, void (mozilla::DataChannelConnection::const &)(socket , socket ), RefPtr<mozilla::DataChannelConnection> &, socket , socket > /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/invoke.h:73:14 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #6 __invoke<void (mozilla::DataChannelConnection::const &)(socket , socket ), RefPtr<mozilla::DataChannelConnection> &, socket , socket > /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/invoke.h:95:14 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #7 operator()<RefPtr<mozilla::DataChannelConnection> &, socket , socket > /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/functional:114:11 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #8 __invoke_impl<void, std::_Mem_fn<void (mozilla::DataChannelConnection::
)(socket , socket )>, RefPtr<mozilla::DataChannelConnection> &, socket , socket > /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/invoke.h:60:14 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #9 __invoke<std::_Mem_fn<void (mozilla::DataChannelConnection::
)(socket , socket )>, RefPtr<mozilla::DataChannelConnection> &, socket , socket > /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/invoke.h:95:14 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #10 __apply_impl<std::_Mem_fn<void (mozilla::DataChannelConnection::
)(socket , socket )>, std::tuple<RefPtr<mozilla::DataChannelConnection> &, socket , socket >, 0, 1, 2> /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/tuple:1684:14 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #11 apply<std::_Mem_fn<void (mozilla::DataChannelConnection::
)(socket , socket )>, std::tuple<RefPtr<mozilla::DataChannelConnection> &, socket , socket > > /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/tuple:1694:14 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #12 mozilla::runnable_args_memfn<RefPtr<mozilla::DataChannelConnection>, void (mozilla::DataChannelConnection::
)(socket
, socket
), socket
, socket
>::RunInternal() /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mtransport/runnable_utils.h:121:5 (libxul.so+0x6663344)
1:18.65 GECKO(2867385) #13 mozilla::detail::runnable_args_base<(mozilla::detail::RunnableResult)0>::Run() /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mtransport/runnable_utils.h:41:5 (libxul.so+0x6662fd2)
1:18.65 GECKO(2867385) #14 nsThread::ProcessNextEvent(bool, bool
) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050)
1:18.65 GECKO(2867385) #15 NS_ProcessNextEvent(nsIThread
, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05)
1:18.65 GECKO(2867385) #16 mozilla::net::nsSocketTransportService::Run() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsSocketTransportService2.cpp:1177:11 (libxul.so+0x5e17551)
1:18.65 GECKO(2867385) #17 non-virtual thunk to mozilla::net::nsSocketTransportService::Run() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsSocketTransportService2.cpp (libxul.so+0x5e18a0d)
1:18.65 GECKO(2867385) #18 nsThread::ProcessNextEvent(bool, bool
) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050)
1:18.65 GECKO(2867385) #19 NS_ProcessNextEvent(nsIThread
, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05)
1:18.66 GECKO(2867385) #20 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate
) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:302:20 (libxul.so+0x6749f5e)
1:18.66 GECKO(2867385) #21 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c)
1:18.66 GECKO(2867385) #22 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c)
1:18.66 GECKO(2867385) #23 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c)
1:18.66 GECKO(2867385) #24 nsThread::ThreadFunc(void
) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:447:10 (libxul.so+0x5c4fcc8)
1:18.66 GECKO(2867385) #25 _pt_root /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x50be0)
1:18.66 GECKO(2867385) Previous read of size 4 at 0x7b64000a0b58 by thread T34 (mutexes: write M210120517653752544, write M210964942583886200, write M437547783235964232):
1:18.66 GECKO(2867385) #0 sctp_iterator_work /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctputil.c:1389:21 (libxul.so+0x66326ea)
1:18.66 GECKO(2867385) #1 sctp_iterator_worker /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctputil.c:1527:3 (libxul.so+0x66326ea)
1:18.66 GECKO(2867385) #2 sctp_iterator_thread /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_bsd_addr.c:164:3 (libxul.so+0x65ba764)
1:18.66 GECKO(2867385) Location is heap block of size 1048 at 0x7b64000a0a00 allocated by main thread:
1:18.66 GECKO(2867385) #0 malloc /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:650:5 (firefox+0x9e244)
1:18.66 GECKO(2867385) #1 sctp_inpcb_alloc /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_pcb.c:2791:8 (libxul.so+0x660a0cf)
1:18.66 GECKO(2867385) #2 sctpconn_attach /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_usrreq.c:807:10 (libxul.so+0x6620c73)
1:18.66 GECKO(2867385) #3 socreate /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/user_socket.c:1304:11 (libxul.so+0x6646a70)
1:18.66 GECKO(2867385) #4 usrsctp_socket /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/user_socket.c:1433:10 (libxul.so+0x6646c3d)
1:18.66 GECKO(2867385) #5 mozilla::DataChannelConnection::Init(unsigned short, unsigned short, mozilla::Maybe<unsigned long> const&) /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:484:24 (libxul.so+0x664d8b6)
1:18.66 GECKO(2867385) #6 mozilla::DataChannelConnection::Create(mozilla::DataChannelConnection::DataConnectionListener
, nsISerialEventTarget
, mozilla::MediaTransportHandler
, unsigned short, unsigned short, mozilla::Maybe<unsigned long> const&) /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:434:22 (libxul.so+0x664d6dc)
1:18.66 GECKO(2867385) #7 mozilla::PeerConnectionImpl::EnsureDataConnection(unsigned short, unsigned short, unsigned int, bool) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:864:18 (libxul.so+0x6fc057d)
1:18.66 GECKO(2867385) #8 mozilla::PeerConnectionImpl::InitializeDataChannel() /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:1078:8 (libxul.so+0x6fc1c0e)
1:18.66 GECKO(2867385) #9 mozilla::PeerConnectionImpl::OnSetDescriptionSuccess(bool, bool) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:2306:5 (libxul.so+0x6fc4074)
1:18.66 GECKO(2867385) #10 mozilla::PeerConnectionImpl::SetLocalDescription(int, char const
) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:1356:5 (libxul.so+0x6fc3742)
1:18.66 GECKO(2867385) #11 mozilla::PeerConnectionImpl::SetLocalDescription(int, nsTSubstring<char16_t> const&, mozilla::ErrorResult&) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h:250:10 (libxul.so+0x818102f)
1:18.66 GECKO(2867385) #12 mozilla::dom::PeerConnectionImpl_Binding::setLocalDescription(JSContext
, JS::Handle<JSObject
>, void
, JSJitMethodCallArgs const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PeerConnectionImplBinding.cpp:236:24 (libxul.so+0x816f752)
1:18.66 GECKO(2867385) #13 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext
, unsigned int, JS::Value
) /home/bcampen/checkouts/mozilla-central/dom/bindings/BindingUtils.cpp:3219:13 (libxul.so+0x8cffe5d)
1:18.66 GECKO(2867385) #14 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc6476e0)
1:18.66 GECKO(2867385) #15 js::InternalCallOrConstruct(JSContext
, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc6476e0)
1:18.66 GECKO(2867385) #16 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc63c9fb)
1:18.66 GECKO(2867385) #17 CallFromStack /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:643:10 (libxul.so+0xc63c9fb)
1:18.66 GECKO(2867385) #18 Interpret(JSContext
, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3298:16 (libxul.so+0xc63c9fb)
1:18.66 GECKO(2867385) #19 js::RunScript(JSContext
, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc62fba6)
1:18.66 GECKO(2867385) #20 js::InternalCallOrConstruct(JSContext
, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.66 GECKO(2867385) #21 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.66 GECKO(2867385) #22 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.66 GECKO(2867385) #23 js::PromiseObject::create(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, bool) /home/bcampen/checkouts/mozilla-central/js/src/builtin/Promise.cpp:2444:15 (libxul.so+0xc84b338)
1:18.66 GECKO(2867385) #24 PromiseConstructor(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/js/src/builtin/Promise.cpp:2365:7 (libxul.so+0xc87607e)
1:18.66 GECKO(2867385) #25 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc649748)
1:18.66 GECKO(2867385) #26 CallJSNativeConstructor /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:500:8 (libxul.so+0xc649748)
1:18.66 GECKO(2867385) #27 InternalConstruct(JSContext*, js::AnyConstructArgs const&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:683:14 (libxul.so+0xc649748)
1:18.66 GECKO(2867385) #28 ConstructFromStack /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:729:10 (libxul.so+0xc63cb57)
1:18.66 GECKO(2867385) #29 Interpret(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3288:16 (libxul.so+0xc63cb57)
1:18.66 GECKO(2867385) #30 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc62fba6)
1:18.66 GECKO(2867385) #31 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.66 GECKO(2867385) #32 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.66 GECKO(2867385) #33 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.66 GECKO(2867385) #34 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jsapi.cpp:2846:10 (libxul.so+0xc7240d1)
1:18.66 GECKO(2867385) #35 mozilla::dom::RTCPeerConnectionJSImpl::SetLocalDescription(mozilla::dom::RTCSessionDescriptionInit const&, mozilla::ErrorResult&, JS::Realm*) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:6656:8 (libxul.so+0x821d98b)
1:18.66 GECKO(2867385) #36 SetLocalDescription /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:9877:17 (libxul.so+0x8255917)
1:18.66 GECKO(2867385) #37 setLocalDescription /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:1981:64 (libxul.so+0x8255917)
1:18.66 GECKO(2867385) #38 mozilla::dom::RTCPeerConnection_Binding::setLocalDescription_promiseWrapper(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:2066:13 (libxul.so+0x8255917)
1:18.66 GECKO(2867385) #39 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ConvertExceptionsToPromises>(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/dom/bindings/BindingUtils.cpp:3219:13 (libxul.so+0x8d00454)
1:18.67 GECKO(2867385) #40 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc6476e0)
1:18.67 GECKO(2867385) #41 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc6476e0)
1:18.67 GECKO(2867385) #42 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc63c9fb)
1:18.67 GECKO(2867385) #43 CallFromStack /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:643:10 (libxul.so+0xc63c9fb)
1:18.67 GECKO(2867385) #44 Interpret(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3298:16 (libxul.so+0xc63c9fb)
1:18.67 GECKO(2867385) #45 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc62fba6)
1:18.67 GECKO(2867385) #46 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.67 GECKO(2867385) #47 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.67 GECKO(2867385) #48 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.67 GECKO(2867385) #49 js::jit::InvokeFunction(JSContext*, JS::Handle<JSObject*>, bool, bool, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jit/VMFunctions.cpp:269:10 (libxul.so+0xcff3810)
1:18.67 GECKO(2867385) #50 js::jit::InvokeFromInterpreterStub(JSContext*, js::jit::InterpreterStubExitFrameLayout*) /home/bcampen/checkouts/mozilla-central/js/src/jit/VMFunctions.cpp:289:8 (libxul.so+0xcff3d0f)
1:18.67 GECKO(2867385) #51 <null> <null> (0x7f7ec3420ed4)
1:18.67 GECKO(2867385) #52 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:441:32 (libxul.so+0xc62fb18)
1:18.67 GECKO(2867385) #53 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.67 GECKO(2867385) #54 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.67 GECKO(2867385) #55 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.67 GECKO(2867385) #56 Call /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.h:104:10 (libxul.so+0xc87b91a)
1:18.67 GECKO(2867385) #57 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/js/src/builtin/Promise.cpp:1902:10 (libxul.so+0xc87b91a)
1:18.67 GECKO(2867385) #58 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc6476e0)
1:18.67 GECKO(2867385) #59 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc6476e0)
1:18.67 GECKO(2867385) #60 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.67 GECKO(2867385) #61 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.67 GECKO(2867385) #62 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jsapi.cpp:2846:10 (libxul.so+0xc7240d1)
1:18.67 GECKO(2867385) #63 mozilla::dom::PromiseJobCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::ErrorResult&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PromiseBinding.cpp:28:8 (libxul.so+0x81eee40)
1:18.67 GECKO(2867385) #64 Call /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x5b54582)
1:18.67 GECKO(2867385) #65 Call /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:104:12 (libxul.so+0x5b54582)
1:18.67 GECKO(2867385) #66 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:209:18 (libxul.so+0x5b54582)
1:18.67 GECKO(2867385) #67 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:644:17 (libxul.so+0x5b38db9)
1:18.67 GECKO(2867385) #68 LeaveMicroTask /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/CycleCollectedJSContext.h:203:7 (libxul.so+0x8ce1a54)
1:18.67 GECKO(2867385) #69 mozilla::dom::CallbackObject::CallSetup::~CallSetup() /home/bcampen/checkouts/mozilla-central/dom/bindings/CallbackObject.cpp:410:11 (libxul.so+0x8ce1a54)
1:18.67 GECKO(2867385) #70 mozilla::dom::PeerConnectionObserverJSImpl::OnCreateAnswerSuccess(nsTSubstring<char16_t> const&, mozilla::ErrorResult&, JS::Realm*) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PeerConnectionObserverBinding.cpp:1896:1 (libxul.so+0x813e817)
1:18.67 GECKO(2867385) #71 mozilla::dom::PeerConnectionObserver::OnCreateAnswerSuccess(nsTSubstring<char16_t> const&, mozilla::ErrorResult&, JS::Realm*) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PeerConnectionObserverBinding.cpp:2673:17 (libxul.so+0x81433fa)
1:18.67 GECKO(2867385) #72 operator() /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:1291:24 (libxul.so+0x6ffdc2a)
1:18.67 GECKO(2867385) #73 mozilla::detail::RunnableFunction<mozilla::PeerConnectionImpl::CreateAnswer()::$_77>::Run() /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsThreadUtils.h:575:5 (libxul.so+0x6ffdc2a)
1:18.67 GECKO(2867385) #74 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050)
1:18.67 GECKO(2867385) #75 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05)
1:18.67 GECKO(2867385) #76 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x674938a)
1:18.67 GECKO(2867385) #77 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x6749e6b)
1:18.67 GECKO(2867385) #78 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c)
1:18.67 GECKO(2867385) #79 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c)
1:18.67 GECKO(2867385) #80 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c)
1:18.67 GECKO(2867385) #81 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa16c955)
1:18.67 GECKO(2867385) #82 XRE_RunAppShell() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0xc4ab699)
1:18.67 GECKO(2867385) #83 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x6749e1d)
1:18.67 GECKO(2867385) #84 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c)
1:18.67 GECKO(2867385) #85 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c)
1:18.67 GECKO(2867385) #86 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c)
1:18.67 GECKO(2867385) #87 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0xc4aaf49)
1:18.67 GECKO(2867385) #88 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17)
1:18.67 GECKO(2867385) #89 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a)
1:18.67 GECKO(2867385) #90 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a)
1:18.67 GECKO(2867385) Mutex M210120517653752544 is already destroyed.
1:18.67 GECKO(2867385) Mutex M210964942583886200 is already destroyed.
1:18.67 GECKO(2867385) Mutex M437547783235964232 is already destroyed.
1:18.67 GECKO(2867385) Thread T5 'Socket Thread' (tid=2867513, running) created by main thread at:
1:18.67 GECKO(2867385) #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b)
1:18.67 GECKO(2867385) #1 _PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x47831)
1:18.67 GECKO(2867385) #2 PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x3be67)
1:18.67 GECKO(2867385) #3 nsThread::Init(nsTSubstring<char> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:659:8 (libxul.so+0x5c51596)
1:18.67 GECKO(2867385) #4 nsThreadManager::NewNamedThread(nsTSubstring<char> const&, unsigned int, nsIThread**) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadManager.cpp:623:12 (libxul.so+0x5c5831e)
1:18.67 GECKO(2867385) #5 NS_NewNamedThread(nsTSubstring<char> const&, nsIThread**, already_AddRefed<nsIRunnable>, unsigned int) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:160:57 (libxul.so+0x5c5e9b7)
1:18.68 GECKO(2867385) #6 NS_NewNamedThread<14> /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsThreadUtils.h:83:10 (libxul.so+0x5e15f0d)
1:18.68 GECKO(2867385) #7 mozilla::net::nsSocketTransportService::Init() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsSocketTransportService2.cpp:767:7 (libxul.so+0x5e15f0d)
1:18.68 GECKO(2867385) #8 mozilla::xpcom::CreateInstanceImpl(mozilla::xpcom::ModuleID, nsISupports*, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/xpcom/components/StaticComponents.cpp:10491:7 (libxul.so+0x5c1607b)
1:18.68 GECKO(2867385) #9 mozilla::xpcom::StaticModule::CreateInstance(nsISupports*, nsID const&, void**) const /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/xpcom/components/StaticComponents.cpp:11495:10 (libxul.so+0x5c129c2)
1:18.68 GECKO(2867385) #10 CreateInstance /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:219:46 (libxul.so+0x5c295d2)
1:18.68 GECKO(2867385) #11 nsComponentManagerImpl::GetServiceLocked((anonymous namespace)::MutexLock&, (anonymous namespace)::EntryWrapper&, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:1372:17 (libxul.so+0x5c295d2)
1:18.68 GECKO(2867385) #12 nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:1559:10 (libxul.so+0x5c245ad)
1:18.68 GECKO(2867385) #13 CallGetService /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManagerUtils.cpp:61:43 (libxul.so+0x5c2d34e)
1:18.68 GECKO(2867385) #14 nsGetServiceByContractIDWithError::operator()(nsID const&, void**) const /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManagerUtils.cpp:253:21 (libxul.so+0x5c2d34e)
1:18.68 GECKO(2867385) #15 nsCOMPtr_base::assign_from_gs_contractid_with_error(nsGetServiceByContractIDWithError const&, nsID const&) /home/bcampen/checkouts/mozilla-central/xpcom/base/nsCOMPtr.cpp:91:7 (libxul.so+0x5b5ea1a)
1:18.68 GECKO(2867385) #16 operator= /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsCOMPtr.h:762:5 (libxul.so+0x5db69a6)
1:18.68 GECKO(2867385) #17 InitializeSocketTransportService /home/bcampen/checkouts/mozilla-central/netwerk/base/nsIOService.cpp:425:29 (libxul.so+0x5db69a6)
1:18.68 GECKO(2867385) #18 mozilla::net::nsIOService::SetOffline(bool) /home/bcampen/checkouts/mozilla-central/netwerk/base/nsIOService.cpp:1297:7 (libxul.so+0x5db69a6)
1:18.68 GECKO(2867385) #19 mozilla::net::nsIOService::Init() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsIOService.cpp:308:3 (libxul.so+0x5db5b2f)
1:18.68 GECKO(2867385) #20 mozilla::net::nsIOService::GetInstance() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsIOService.cpp:482:9 (libxul.so+0x5db7905)
1:18.68 GECKO(2867385) #21 mozilla::xpcom::CreateInstanceImpl(mozilla::xpcom::ModuleID, nsISupports*, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/xpcom/components/StaticComponents.cpp:9929:48 (libxul.so+0x5c152d0)
1:18.68 GECKO(2867385) #22 mozilla::xpcom::StaticModule::CreateInstance(nsISupports*, nsID const&, void**) const /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/xpcom/components/StaticComponents.cpp:11495:10 (libxul.so+0x5c129c2)
1:18.68 GECKO(2867385) #23 CreateInstance /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:219:46 (libxul.so+0x5c295d2)
1:18.68 GECKO(2867385) #24 nsComponentManagerImpl::GetServiceLocked((anonymous namespace)::MutexLock&, (anonymous namespace)::EntryWrapper&, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:1372:17 (libxul.so+0x5c295d2)
1:18.68 GECKO(2867385) #25 nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:1559:10 (libxul.so+0x5c245ad)
1:18.68 GECKO(2867385) #26 CallGetService(char const*, nsID const&, void**) /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManagerUtils.cpp:61:43 (libxul.so+0x5c2cc71)
1:18.68 GECKO(2867385) #27 CallGetService<nsIIOService> /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsServiceManagerUtils.h:72:10 (libxul.so+0x7194213)
1:18.68 GECKO(2867385) #28 nsScriptSecurityManager::Init() /home/bcampen/checkouts/mozilla-central/caps/nsScriptSecurityManager.cpp:1374:17 (libxul.so+0x7194213)
1:18.68 GECKO(2867385) #29 nsScriptSecurityManager::InitStatics() /home/bcampen/checkouts/mozilla-central/caps/nsScriptSecurityManager.cpp:1435:28 (libxul.so+0x7194ac3)
1:18.68 GECKO(2867385) #30 nsXPConnect::InitStatics() /home/bcampen/checkouts/mozilla-central/js/xpconnect/src/nsXPConnect.cpp:153:3 (libxul.so+0x6e8d198)
1:18.68 GECKO(2867385) #31 xpcModuleCtor() /home/bcampen/checkouts/mozilla-central/js/xpconnect/src/XPCModule.cpp:11:3 (libxul.so+0x6e5f081)
1:18.68 GECKO(2867385) #32 nsLayoutModuleInitialize() /home/bcampen/checkouts/mozilla-central/layout/build/nsLayoutModule.cpp:108:7 (libxul.so+0xa99115b)
1:18.68 GECKO(2867385) #33 nsComponentManagerImpl::Init() /home/bcampen/checkouts/mozilla-central/xpcom/components/nsComponentManager.cpp:482:5 (libxul.so+0x5c251b7)
1:18.68 GECKO(2867385) #34 NS_InitXPCOM /home/bcampen/checkouts/mozilla-central/xpcom/build/XPCOMInit.cpp:447:51 (libxul.so+0x5c8fd4b)
1:18.68 GECKO(2867385) #35 XRE_InitEmbedding2(nsIFile*, nsIFile*, nsIDirectoryServiceProvider*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:197:8 (libxul.so+0xc4aa688)
1:18.68 GECKO(2867385) #36 mozilla::ipc::ScopedXREEmbed::Start() /home/bcampen/checkouts/mozilla-central/ipc/glue/ScopedXREEmbed.cpp (libxul.so+0x6756f3d)
1:18.68 GECKO(2867385) #37 mozilla::dom::ContentProcess::Init(int, char**) /home/bcampen/checkouts/mozilla-central/dom/ipc/ContentProcess.cpp:181:13 (libxul.so+0x9cf080c)
1:18.68 GECKO(2867385) #38 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:710:21 (libxul.so+0xc4aaf1a)
1:18.68 GECKO(2867385) #39 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17)
1:18.68 GECKO(2867385) #40 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a)
1:18.68 GECKO(2867385) #41 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a)
1:18.68 GECKO(2867385) Thread T34 'SCTP iterator' (tid=2867669, running) created by main thread at:
1:18.68 GECKO(2867385) #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b)
1:18.68 GECKO(2867385) #1 sctp_userspace_thread_create /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_userspace.c:82:9 (libxul.so+0x66205d4)
1:18.68 GECKO(2867385) #2 sctp_startup_iterator /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_bsd_addr.c:209:6 (libxul.so+0x65ba69d)
1:18.68 GECKO(2867385) #3 sctp_pcb_init /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_pcb.c:6831:2 (libxul.so+0x6613662)
1:18.68 GECKO(2867385) #4 sctp_init /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_usrreq.c:154:2 (libxul.so+0x66207f7)
1:18.68 GECKO(2867385) #5 usrsctp_init /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/user_socket.c:107:2 (libxul.so+0x664407c)
1:18.68 GECKO(2867385) #6 mozilla::DataChannelRegistry::InitUsrSctp() /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:227:5 (libxul.so+0x6660f43)
1:18.68 GECKO(2867385) #7 DataChannelRegistry /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:138:5 (libxul.so+0x665ff5d)
1:18.68 GECKO(2867385) #8 Instance /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:143:56 (libxul.so+0x665ff5d)
1:18.68 GECKO(2867385) #9 mozilla::DataChannelRegistry::Register(mozilla::DataChannelConnection*) /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:103:9 (libxul.so+0x665ff5d)
1:18.68 GECKO(2867385) #10 mozilla::DataChannelConnection::Init(unsigned short, unsigned short, mozilla::Maybe<unsigned long> const&) /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:475:9 (libxul.so+0x664d82e)
1:18.68 GECKO(2867385) #11 mozilla::DataChannelConnection::Create(mozilla::DataChannelConnection::DataConnectionListener*, nsISerialEventTarget*, mozilla::MediaTransportHandler*, unsigned short, unsigned short, mozilla::Maybe<unsigned long> const&) /home/bcampen/checkouts/mozilla-central/netwerk/sctp/datachannel/DataChannel.cpp:434:22 (libxul.so+0x664d6dc)
1:18.68 GECKO(2867385) #12 mozilla::PeerConnectionImpl::EnsureDataConnection(unsigned short, unsigned short, unsigned int, bool) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:864:18 (libxul.so+0x6fc057d)
1:18.68 GECKO(2867385) #13 mozilla::PeerConnectionImpl::CreateDataChannel(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, unsigned short, bool, unsigned short, unsigned short, bool, unsigned short, nsDOMDataChannel**) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:1113:17 (libxul.so+0x6fc1ed3)
1:18.69 GECKO(2867385) #14 mozilla::PeerConnectionImpl::CreateDataChannel(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, unsigned short, bool, unsigned short, unsigned short, bool, unsigned short, mozilla::ErrorResult&) /home/bcampen/checkouts/mozilla-central/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:1096:8 (libxul.so+0x6fc1dd8)
1:18.69 GECKO(2867385) #15 mozilla::dom::PeerConnectionImpl_Binding::createDataChannel(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PeerConnectionImplBinding.cpp:1603:69 (libxul.so+0x8172c6a)
1:18.69 GECKO(2867385) #16 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/dom/bindings/BindingUtils.cpp:3219:13 (libxul.so+0x8cffe5d)
1:18.69 GECKO(2867385) #17 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc6476e0)
1:18.69 GECKO(2867385) #18 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc6476e0)
1:18.69 GECKO(2867385) #19 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc63c9fb)
1:18.69 GECKO(2867385) #20 CallFromStack /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:643:10 (libxul.so+0xc63c9fb)
1:18.69 GECKO(2867385) #21 Interpret(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3298:16 (libxul.so+0xc63c9fb)
1:18.69 GECKO(2867385) #22 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc62fba6)
1:18.69 GECKO(2867385) #23 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.69 GECKO(2867385) #24 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #25 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #26 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jsapi.cpp:2846:10 (libxul.so+0xc7240d1)
1:18.69 GECKO(2867385) #27 mozilla::dom::RTCPeerConnectionJSImpl::CreateDataChannel(nsTSubstring<char16_t> const&, mozilla::dom::RTCDataChannelInit const&, mozilla::ErrorResult&, JS::Realm*) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:8294:8 (libxul.so+0x82285f0)
1:18.69 GECKO(2867385) #28 CreateDataChannel /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:10205:17 (libxul.so+0x825d4ef)
1:18.69 GECKO(2867385) #29 mozilla::dom::RTCPeerConnection_Binding::createDataChannel(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/RTCPeerConnectionBinding.cpp:5329:69 (libxul.so+0x825d4ef)
1:18.69 GECKO(2867385) #30 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/dom/bindings/BindingUtils.cpp:3219:13 (libxul.so+0x8cffe5d)
1:18.69 GECKO(2867385) #31 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc6476e0)
1:18.69 GECKO(2867385) #32 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc6476e0)
1:18.69 GECKO(2867385) #33 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc63c9fb)
1:18.69 GECKO(2867385) #34 CallFromStack /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:643:10 (libxul.so+0xc63c9fb)
1:18.69 GECKO(2867385) #35 Interpret(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:3298:16 (libxul.so+0xc63c9fb)
1:18.69 GECKO(2867385) #36 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:456:10 (libxul.so+0xc62fba6)
1:18.69 GECKO(2867385) #37 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.69 GECKO(2867385) #38 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #39 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #40 js::jit::InvokeFunction(JSContext*, JS::Handle<JSObject*>, bool, bool, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jit/VMFunctions.cpp:269:10 (libxul.so+0xcff3810)
1:18.69 GECKO(2867385) #41 js::jit::InvokeFromInterpreterStub(JSContext*, js::jit::InterpreterStubExitFrameLayout*) /home/bcampen/checkouts/mozilla-central/js/src/jit/VMFunctions.cpp:289:8 (libxul.so+0xcff3d0f)
1:18.69 GECKO(2867385) #42 <null> <null> (0x7f7ec3420ed4)
1:18.69 GECKO(2867385) #43 js::RunScript(JSContext*, js::RunState&) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:441:32 (libxul.so+0xc62fb18)
1:18.69 GECKO(2867385) #44 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:611:13 (libxul.so+0xc6480d1)
1:18.69 GECKO(2867385) #45 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #46 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #47 Call /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.h:104:10 (libxul.so+0xc87b91a)
1:18.69 GECKO(2867385) #48 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /home/bcampen/checkouts/mozilla-central/js/src/builtin/Promise.cpp:1902:10 (libxul.so+0xc87b91a)
1:18.69 GECKO(2867385) #49 CallJSNative /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:484:13 (libxul.so+0xc6476e0)
1:18.69 GECKO(2867385) #50 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:576:12 (libxul.so+0xc6476e0)
1:18.69 GECKO(2867385) #51 InternalCall /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:639:10 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #52 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/bcampen/checkouts/mozilla-central/js/src/vm/Interpreter.cpp:656:8 (libxul.so+0xc648bc0)
1:18.69 GECKO(2867385) #53 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/bcampen/checkouts/mozilla-central/js/src/jsapi.cpp:2846:10 (libxul.so+0xc7240d1)
1:18.69 GECKO(2867385) #54 mozilla::dom::PromiseJobCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::ErrorResult&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dom/bindings/PromiseBinding.cpp:28:8 (libxul.so+0x81eee40)
1:18.69 GECKO(2867385) #55 Call /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x5b54582)
1:18.69 GECKO(2867385) #56 Call /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:104:12 (libxul.so+0x5b54582)
1:18.69 GECKO(2867385) #57 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:209:18 (libxul.so+0x5b54582)
1:18.69 GECKO(2867385) #58 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /home/bcampen/checkouts/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:644:17 (libxul.so+0x5b38db9)
1:18.69 GECKO(2867385) #59 LeaveMicroTask /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/CycleCollectedJSContext.h:203:7 (libxul.so+0x8ce1a54)
1:18.69 GECKO(2867385) #60 mozilla::dom::CallbackObject::CallSetup::~CallSetup() /home/bcampen/checkouts/mozilla-central/dom/bindings/CallbackObject.cpp:410:11 (libxul.so+0x8ce1a54)
1:18.69 GECKO(2867385) #61 void mozilla::dom::Function::Call<nsCOMPtr<nsIGlobalObject> >(nsCOMPtr<nsIGlobalObject> const&, nsTArray<JS::Value> const&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/FunctionBinding.h:74:3 (libxul.so+0x7c5c973)
1:18.69 GECKO(2867385) #62 mozilla::dom::CallbackTimeoutHandler::Call(char const*) /home/bcampen/checkouts/mozilla-central/dom/base/TimeoutHandler.cpp:167:29 (libxul.so+0x7c4eb00)
1:18.69 GECKO(2867385) #63 nsGlobalWindowInner::RunTimeoutHandler(mozilla::dom::Timeout*, nsIScriptContext*) /home/bcampen/checkouts/mozilla-central/dom/base/nsGlobalWindowInner.cpp:5967:38 (libxul.so+0x7a56ad5)
1:18.69 GECKO(2867385) #64 mozilla::dom::TimeoutManager::RunTimeout(mozilla::TimeStamp const&, mozilla::TimeStamp const&, bool) /home/bcampen/checkouts/mozilla-central/dom/base/TimeoutManager.cpp:888:44 (libxul.so+0x7c4bcfd)
1:18.69 GECKO(2867385) #65 mozilla::dom::TimeoutExecutor::MaybeExecute() /home/bcampen/checkouts/mozilla-central/dom/base/TimeoutExecutor.cpp:179:11 (libxul.so+0x7c4b048)
1:18.69 GECKO(2867385) #66 mozilla::dom::TimeoutExecutor::Run() /home/bcampen/checkouts/mozilla-central/dom/base/TimeoutExecutor.cpp:234:5 (libxul.so+0x7c4d482)
1:18.69 GECKO(2867385) #67 mozilla::ThrottledEventQueue::Inner::ExecuteRunnable() /home/bcampen/checkouts/mozilla-central/xpcom/threads/ThrottledEventQueue.cpp:254:22 (libxul.so+0x5c6f028)
1:18.69 GECKO(2867385) #68 mozilla::ThrottledEventQueue::Inner::Executor::Run() /home/bcampen/checkouts/mozilla-central/xpcom/threads/ThrottledEventQueue.cpp:81:15 (libxul.so+0x5c6a713)
1:18.69 GECKO(2867385) #69 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5c54050)
1:18.70 GECKO(2867385) #70 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:504:10 (libxul.so+0x5c58c05)
1:18.70 GECKO(2867385) #71 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x674938a)
1:18.70 GECKO(2867385) #72 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:270:30 (libxul.so+0x6749e6b)
1:18.70 GECKO(2867385) #73 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c)
1:18.70 GECKO(2867385) #74 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c)
1:18.70 GECKO(2867385) #75 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c)
1:18.70 GECKO(2867385) #76 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa16c955)
1:18.70 GECKO(2867385) #77 XRE_RunAppShell() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:913:20 (libxul.so+0xc4ab699)
1:18.70 GECKO(2867385) #78 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:237:9 (libxul.so+0x6749e1d)
1:18.70 GECKO(2867385) #79 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:316:10 (libxul.so+0x667c32c)
1:18.70 GECKO(2867385) #80 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x667c32c)
1:18.70 GECKO(2867385) #81 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:291:3 (libxul.so+0x667c32c)
1:18.70 GECKO(2867385) #82 XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:744:34 (libxul.so+0xc4aaf49)
1:18.70 GECKO(2867385) #83 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:67:12 (libxul.so+0xc4b3c17)
1:18.70 GECKO(2867385) #84 content_process_main /home/bcampen/checkouts/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28 (firefox+0x11171a)
1:18.70 GECKO(2867385) #85 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:303:18 (firefox+0x11171a)
1:18.70 GECKO(2867385) SUMMARY: ThreadSanitizer: data race /home/bcampen/checkouts/mozilla-central/netwerk/sctp/src/netinet/sctp_usrreq.c:867:7 in sctp_close
1:18.70 GECKO(2867385) ==================

Again, not sure if this is a problem in usrsctp or in the way that we're using it. Another case that hints we should stop using usrsctp from more than one thread.

Just saw a variant of this that happens between STS and one of libusrstcp's threads, so it does not look like we can work around it with tighter threading on our side. We're racing on this flag field here: https://searchfox.org/mozilla-central/rev/d6d8fcc22c3820f2ae08229e0d37be19fba74db9/netwerk/sctp/src/netinet/sctp_usrreq.c#819 vs https://searchfox.org/mozilla-central/rev/d6d8fcc22c3820f2ae08229e0d37be19fba74db9/netwerk/sctp/src/netinet/sctputil.c#1527

Any ideas here?

Flags: needinfo?(tuexen)

Also have observed this with sctp_iterator_work racing with sctpconn_connect.

Let me look into that.

Flags: needinfo?(docfaraday)

No, I don't think so.

Flags: needinfo?(docfaraday)

That is different.

Flags: needinfo?(tuexen)
Assignee: nobody → docfaraday
Status: NEW → ASSIGNED
Keywords: leave-open
Pushed by bcampen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c0bee93a6baf
Suppress flag-checking race in libusrsctp's sctp_close. r=decoder
You need to log in before you can comment on or make changes to this bug.