Data race between HttpChannelChild's NeedToReportBytesRead() and Release()

RESOLVED FIXED in Firefox 65

Status

()

defect
P1
normal
RESOLVED FIXED
9 months ago
9 months ago

People

(Reporter: ytausky, Assigned: valentin.gosu)

Tracking

unspecified
mozilla65
Points:
---

Firefox Tracking Flags

(firefox65 fixed)

Details

(Whiteboard: [necko-triaged])

Attachments

(3 attachments)

TSan shows the following error while running some tests:

51:07.09 pid:11698 ==================
51:07.09 pid:11698 WARNING: ThreadSanitizer: data race (pid=11831)
51:07.09 pid:11698   Read of size 2 at 0x7b700005671c by main thread:
51:07.09 pid:11698     #0 mozilla::net::HttpChannelChild::Release() /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:269:7 (libxul.so+0x1b15273)
51:07.09 pid:11698     #1 decltype (((*{parm#1}).*{parm#2})()) mozilla::detail::RunnableMethodArguments<>::applyImpl<mozilla::net::HttpChannelChild, unsigned int (mozilla::net::HttpChannelChild::*)()>(mozilla::net::HttpChannelChild*, unsigned int (mozilla::net::HttpChannelChild::*)(), mozilla::Tuple<>&, std::integer_sequence<unsigned long>) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:1191:12 (libxul.so+0x1b6946a)
51:07.09 pid:11698     #2 _ZN7mozilla6detail23RunnableMethodArgumentsIJEE5applyINS_3net16HttpChannelChildEMS5_FjvEEEDTcl9applyImplfp_fp0_dtdefpT10mArgumentstlSt16integer_sequenceImJEEEEEPT_T0_ /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:1197 (libxul.so+0x1b6946a)
51:07.09 pid:11698     #3 mozilla::detail::RunnableMethodImpl<mozilla::net::HttpChannelChild*, unsigned int (mozilla::net::HttpChannelChild::*)(), false, (mozilla::RunnableKind)0>::Run() /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:1242 (libxul.so+0x1b6946a)
51:07.09 pid:11698     #4 nsThread::ProcessNextEvent(bool, bool*) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThread.cpp:1246:14 (libxul.so+0x14aba69)
51:07.09 pid:11698     #5 NS_ProcessNextEvent(nsIThread*, bool) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThreadUtils.cpp:530:10 (libxul.so+0x14aea05)
51:07.09 pid:11698     #6 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:97:21 (libxul.so+0x1dc20ee)
51:07.09 pid:11698     #7 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:301:30 (libxul.so+0x1dc2b0b)
51:07.09 pid:11698     #8 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.09 pid:11698     #9 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.09 pid:11698     #10 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.09 pid:11698     #11 nsBaseAppShell::Run() /home/ytausky/dev/mozilla-central/widget/nsBaseAppShell.cpp:158:27 (libxul.so+0x5157f75)
51:07.09 pid:11698     #12 XRE_RunAppShell() /home/ytausky/dev/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:954:22 (libxul.so+0x734a56c)
51:07.09 pid:11698     #13 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:269:9 (libxul.so+0x1dc2abd)
51:07.09 pid:11698     #14 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.09 pid:11698     #15 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.09 pid:11698     #16 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.10 pid:11698     #17 XRE_InitChildProcess(int, char**, XREChildData const*) /home/ytausky/dev/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:780:34 (libxul.so+0x734a125)
51:07.10 pid:11698     #18 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/ytausky/dev/mozilla-central/toolkit/xre/Bootstrap.cpp:69:12 (libxul.so+0x7355a07)
51:07.10 pid:11698     #19 content_process_main(mozilla::Bootstrap*, int, char**) /home/ytausky/dev/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:50:30 (firefox+0xc3d71)
51:07.10 pid:11698     #20 main /home/ytausky/dev/mozilla-central/browser/app/nsBrowserApp.cpp:287 (firefox+0xc3d71)
51:07.10 pid:11698   Previous write of size 2 at 0x7b700005671c by thread T15:
51:07.10 pid:11698     #0 mozilla::net::HttpChannelChild::NeedToReportBytesRead() /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:1023:28 (libxul.so+0x1b186a3)
51:07.10 pid:11698     #1 mozilla::net::HttpChannelChild::OnTransportAndData(nsresult const&, nsresult const&, unsigned long const&, unsigned int const&, nsTString<char> const&) /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:985 (libxul.so+0x1b186a3)
51:07.10 pid:11698     #2 mozilla::net::TransportAndDataEvent::Run() /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:829:13 (libxul.so+0x1b66db7)
51:07.10 pid:11698     #3 mozilla::net::ChannelEventQueue::FlushQueue() /home/ytausky/dev/mozilla-central/netwerk/ipc/ChannelEventQueue.cpp:93:12 (libxul.so+0x1c330f3)
51:07.10 pid:11698     #4 mozilla::net::ChannelEventQueue::MaybeFlushQueue() /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/net/ChannelEventQueue.h:329:5 (libxul.so+0x1c3835c)
51:07.10 pid:11698     #5 mozilla::net::ChannelEventQueue::CompleteResume() /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/net/ChannelEventQueue.h:306 (libxul.so+0x1c3835c)
51:07.10 pid:11698     #6 mozilla::net::ChannelEventQueue::ResumeInternal()::CompleteResumeRunnable::Run() /home/ytausky/dev/mozilla-central/netwerk/ipc/ChannelEventQueue.cpp:161 (libxul.so+0x1c3835c)
51:07.10 pid:11698     #7 nsThread::ProcessNextEvent(bool, bool*) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThread.cpp:1246:14 (libxul.so+0x14aba69)
51:07.10 pid:11698     #8 NS_ProcessNextEvent(nsIThread*, bool) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThreadUtils.cpp:530:10 (libxul.so+0x14aea05)
51:07.10 pid:11698     #9 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:364:5 (libxul.so+0x1dc2c6d)
51:07.10 pid:11698     #10 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.10 pid:11698     #11 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.10 pid:11698     #12 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.10 pid:11698     #13 nsThread::ThreadFunc(void*) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThread.cpp:505:11 (libxul.so+0x14a8642)
51:07.10 pid:11698     #14 _pt_root /home/ytausky/dev/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x428c8)
51:07.10 pid:11698   Location is heap block of size 1824 at 0x7b7000056000 allocated by main thread:
51:07.10 pid:11698     #0 malloc <null> (firefox+0x4c75c)
51:07.10 pid:11698     #1 moz_xmalloc /home/ytausky/dev/mozilla-central/memory/mozalloc/mozalloc.cpp:70:17 (firefox+0xc455a)
51:07.10 pid:11698     #2 operator new(unsigned long) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/mozalloc.h:139:12 (libxul.so+0x1ab74bf)
51:07.10 pid:11698     #3 mozilla::net::nsHttpHandler::NewProxiedChannel2(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/ytausky/dev/mozilla-central/netwerk/protocol/http/nsHttpHandler.cpp:2210 (libxul.so+0x1ab74bf)
51:07.11 pid:11698     #4 mozilla::net::nsHttpsHandler::NewProxiedChannel2(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/ytausky/dev/mozilla-central/netwerk/protocol/http/nsHttpHandler.h:767:5 (libxul.so+0x1ab9c54)
51:07.11 pid:11698     #5 mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI*, nsIURI*, unsigned int, nsILoadInfo*, nsIChannel**) /home/ytausky/dev/mozilla-central/netwerk/base/nsIOService.cpp:861:19 (libxul.so+0x1596fb7)
51:07.11 pid:11698     #6 mozilla::net::nsIOService::NewChannelFromURIWithLoadInfo(nsIURI*, nsILoadInfo*, nsIChannel**) /home/ytausky/dev/mozilla-central/netwerk/base/nsIOService.cpp:773:10 (libxul.so+0x1596dd4)
51:07.11 pid:11698     #7 NS_NewChannelInternal(nsIChannel**, nsIURI*, nsILoadInfo*, mozilla::dom::PerformanceStorage*, nsILoadGroup*, nsIInterfaceRequestor*, unsigned int, nsIIOService*) /home/ytausky/dev/mozilla-central/netwerk/base/nsNetUtil.cpp:232:20 (libxul.so+0x15ad025)
51:07.11 pid:11698     #8 nsDocShell::DoURILoad(nsIURI*, nsIURI*, mozilla::Maybe<nsCOMPtr<nsIURI> > const&, bool, bool, bool, bool, bool, nsIURI*, bool, unsigned int, nsIPrincipal*, nsIPrincipal*, nsTSubstring<char> const&, nsTSubstring<char16_t> const&, nsIInputStream*, nsIInputStream*, bool, nsIDocShell**, nsIRequest**, bool, bool, bool, nsTSubstring<char16_t> const&, nsIURI*, unsigned int) /home/ytausky/dev/mozilla-central/docshell/base/nsDocShell.cpp:10469:10 (libxul.so+0x6dd2fd7)
51:07.11 pid:11698     #9 nsDocShell::InternalLoad(nsIURI*, nsIURI*, mozilla::Maybe<nsCOMPtr<nsIURI> > const&, bool, bool, nsIURI*, unsigned int, nsIPrincipal*, nsIPrincipal*, unsigned int, nsTSubstring<char16_t> const&, nsTSubstring<char> const&, nsTSubstring<char16_t> const&, nsIInputStream*, nsIInputStream*, unsigned int, nsISHEntry*, bool, nsTSubstring<char16_t> const&, nsIDocShell*, nsIURI*, nsIDocShell**, nsIRequest**) /home/ytausky/dev/mozilla-central/docshell/base/nsDocShell.cpp:10097:8 (libxul.so+0x6dabce7)
51:07.11 pid:11698     #10 nsDocShell::LoadURI(nsDocShellLoadState*) /home/ytausky/dev/mozilla-central/docshell/base/nsDocShell.cpp:756:10 (libxul.so+0x6da7421)
51:07.11 pid:11698     #11 non-virtual thunk to nsDocShell::LoadURI(nsDocShellLoadState*) /home/ytausky/dev/mozilla-central/docshell/base/nsDocShell.cpp (libxul.so+0x6dac307)
51:07.11 pid:11698     #12 nsWindowWatcher::OpenWindowInternal(mozIDOMWindowProxy*, char const*, char const*, char const*, bool, bool, bool, nsIArray*, bool, bool, nsDocShellLoadState*, mozIDOMWindowProxy**) /home/ytausky/dev/mozilla-central/toolkit/components/windowwatcher/nsWindowWatcher.cpp:1195:18 (libxul.so+0x72dfc08)
51:07.11 pid:11698     #13 nsWindowWatcher::OpenWindow2(mozIDOMWindowProxy*, char const*, char const*, char const*, bool, bool, bool, nsISupports*, bool, bool, nsDocShellLoadState*, mozIDOMWindowProxy**) /home/ytausky/dev/mozilla-central/toolkit/components/windowwatcher/nsWindowWatcher.cpp:413:10 (libxul.so+0x72e0a01)
51:07.11 pid:11698     #14 non-virtual thunk to nsWindowWatcher::OpenWindow2(mozIDOMWindowProxy*, char const*, char const*, char const*, bool, bool, bool, nsISupports*, bool, bool, nsDocShellLoadState*, mozIDOMWindowProxy**) /home/ytausky/dev/mozilla-central/toolkit/components/windowwatcher/nsWindowWatcher.cpp (libxul.so+0x72e0a01)
51:07.11 pid:11698     #15 nsGlobalWindowOuter::OpenInternal(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, bool, bool, bool, bool, bool, nsIArray*, nsISupports*, nsDocShellLoadState*, bool, nsPIDOMWindowOuter**) /home/ytausky/dev/mozilla-central/dom/base/nsGlobalWindowOuter.cpp:7141:21 (libxul.so+0x2f0f6de)
51:07.11 pid:11698     #16 nsGlobalWindowOuter::OpenJS(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsPIDOMWindowOuter**) /home/ytausky/dev/mozilla-central/dom/base/nsGlobalWindowOuter.cpp:5570:10 (libxul.so+0x2f0eca5)
51:07.11 pid:11698     #17 nsGlobalWindowOuter::OpenOuter(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, mozilla::ErrorResult&) /home/ytausky/dev/mozilla-central/dom/base/nsGlobalWindowOuter.cpp:5545 (libxul.so+0x2f0eca5)
51:07.11 pid:11698     #18 nsGlobalWindowInner::Open(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, mozilla::ErrorResult&) /home/ytausky/dev/mozilla-central/dom/base/nsGlobalWindowInner.cpp:4074:3 (libxul.so+0x2ee3e58)
51:07.11 pid:11698     #19 mozilla::dom::Window_Binding::open(JSContext*, JS::Handle<JSObject*>, nsGlobalWindowInner*, JSJitMethodCallArgs const&) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dom/bindings/WindowBinding.cpp:2614:56 (libxul.so+0x3ac44f8)
51:07.11 pid:11698     #20 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::MaybeGlobalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/dom/bindings/BindingUtils.cpp:3374:13 (libxul.so+0x3ff0bb3)
51:07.11 pid:11698     #21 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8205020)
51:07.11 pid:11698     #22 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.11 pid:11698     #23 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.11 pid:11698     #24 js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const /home/ytausky/dev/mozilla-central/js/src/proxy/Wrapper.cpp:178:12 (libxul.so+0x7a41c9c)
51:07.11 pid:11698     #25 js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const /home/ytausky/dev/mozilla-central/js/src/proxy/CrossCompartmentWrapper.cpp:355:23 (libxul.so+0x7a236d1)
51:07.11 pid:11698     #26 js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/proxy/Proxy.cpp:560:21 (libxul.so+0x7a35099)
51:07.11 pid:11698     #27 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:535:20 (libxul.so+0x8205a2e)
51:07.11 pid:11698     #28 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.11 pid:11698     #29 js::CallFromStack(JSContext*, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:620:12 (libxul.so+0x81fb475)
51:07.11 pid:11698     #30 Interpret(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:3461 (libxul.so+0x81fb475)
51:07.11 pid:11698     #31 js::RunScript(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:447:12 (libxul.so+0x81ee332)
51:07.11 pid:11698     #32 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:587:15 (libxul.so+0x8205638)
51:07.11 pid:11698     #33 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.12 pid:11698     #34 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.12 pid:11698     #35 js::fun_apply(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/vm/JSFunction.cpp:1381:12 (libxul.so+0x76a45c9)
51:07.12 pid:11698     #36 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8205020)
51:07.12 pid:11698     #37 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.12 pid:11698     #38 js::CallFromStack(JSContext*, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:620:12 (libxul.so+0x81fb475)
51:07.12 pid:11698     #39 Interpret(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:3461 (libxul.so+0x81fb475)
51:07.12 pid:11698     #40 js::RunScript(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:447:12 (libxul.so+0x81ee332)
51:07.12 pid:11698     #41 js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::AbstractFramePtr, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:813:15 (libxul.so+0x82076f3)
51:07.12 pid:11698     #42 js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:845:12 (libxul.so+0x82079b9)
51:07.12 pid:11698     #43 Evaluate(JSContext*, js::ScopeKind, JS::Handle<JSObject*>, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/CompilationAndEvaluation.cpp:499:19 (libxul.so+0x759aa24)
51:07.12 pid:11698     #44 JS::Evaluate(JSContext*, JS::ReadOnlyCompileOptions const&, JS::SourceBufferHolder&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/CompilationAndEvaluation.cpp:550:12 (libxul.so+0x759ac80)
51:07.12 pid:11698     #45 xpc::EvalInSandbox(JSContext*, JS::Handle<JSObject*>, nsTSubstring<char16_t> const&, nsTSubstring<char> const&, int, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/xpconnect/src/Sandbox.cpp:1929:14 (libxul.so+0x23da712)
51:07.12 pid:11698     #46 nsXPCComponents_Utils::EvalInSandbox(nsTSubstring<char16_t> const&, JS::Handle<JS::Value>, JS::Handle<JS::Value>, nsTSubstring<char> const&, int, JSContext*, unsigned char, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/xpconnect/src/XPCComponents.cpp:2254:12 (libxul.so+0x23e922a)
51:07.12 pid:11698     #47 NS_InvokeByIndex /home/ytausky/dev/mozilla-central/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_64_unix.S:106 (libxul.so+0x14cb2c5)
51:07.12 pid:11698     #48 XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1020:12 (libxul.so+0x243209d)
51:07.12 pid:11698     #49 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8205020)
51:07.12 pid:11698     #50 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.12 pid:11698     #51 js::CallFromStack(JSContext*, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:620:12 (libxul.so+0x81fb475)
51:07.12 pid:11698     #52 Interpret(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:3461 (libxul.so+0x81fb475)
51:07.12 pid:11698     #53 js::RunScript(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:447:12 (libxul.so+0x81ee332)
51:07.12 pid:11698     #54 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:587:15 (libxul.so+0x8205638)
51:07.12 pid:11698     #55 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.12 pid:11698     #56 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.12 pid:11698     #57 js::PromiseObject::create(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, bool) /home/ytausky/dev/mozilla-central/js/src/builtin/Promise.cpp:2161:19 (libxul.so+0x752b2a1)
51:07.12 pid:11698     #58 PromiseConstructor(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/builtin/Promise.cpp:2082:30 (libxul.so+0x754124e)
51:07.12 pid:11698     #59 CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8206bcd)
51:07.12 pid:11698     #60 CallJSNativeConstructor(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:485 (libxul.so+0x8206bcd)
51:07.12 pid:11698     #61 InternalConstruct(JSContext*, js::AnyConstructArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:661 (libxul.so+0x8206bcd)
51:07.12 pid:11698     #62 js::ConstructFromStack(JSContext*, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:707:12 (libxul.so+0x81fb4cf)
51:07.12 pid:11698     #63 Interpret(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:3452 (libxul.so+0x81fb4cf)
51:07.12 pid:11698     #64 js::RunScript(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:447:12 (libxul.so+0x81ee332)
51:07.13 pid:11698     #65 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:587:15 (libxul.so+0x8205638)
51:07.13 pid:11698     #66 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.13 pid:11698     #67 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.13 pid:11698     #68 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/SelfHosting.cpp:1879:12 (libxul.so+0x7799795)
51:07.13 pid:11698     #69 AsyncFunctionResume(JSContext*, JS::Handle<js::PromiseObject*>, JS::Handle<JS::Value>, ResumeKind, JS::Handle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/AsyncFunction.cpp:200:10 (libxul.so+0x75790a6)
51:07.13 pid:11698     #70 AsyncFunctionStart(JSContext*, JS::Handle<js::PromiseObject*>, JS::Handle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/AsyncFunction.cpp:215:12 (libxul.so+0x7578c05)
51:07.13 pid:11698     #71 WrappedAsyncFunction(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/vm/AsyncFunction.cpp:92 (libxul.so+0x7578c05)
51:07.13 pid:11698     #72 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8205020)
51:07.13 pid:11698     #73 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.13 pid:11698     #74 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.13 pid:11698     #75 js::fun_apply(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/vm/JSFunction.cpp:1381:12 (libxul.so+0x76a45c9)
51:07.13 pid:11698     #76 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8205020)
51:07.13 pid:11698     #77 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.13 pid:11698     #78 js::CallFromStack(JSContext*, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:620:12 (libxul.so+0x81fb475)
51:07.13 pid:11698     #79 Interpret(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:3461 (libxul.so+0x81fb475)
51:07.13 pid:11698     #80 js::RunScript(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:447:12 (libxul.so+0x81ee332)
51:07.13 pid:11698     #81 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:587:15 (libxul.so+0x8205638)
51:07.13 pid:11698     #82 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.13 pid:11698     #83 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.13 pid:11698     #84 js::PromiseObject::create(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSObject*>, bool) /home/ytausky/dev/mozilla-central/js/src/builtin/Promise.cpp:2161:19 (libxul.so+0x752b2a1)
51:07.13 pid:11698     #85 PromiseConstructor(JSContext*, unsigned int, JS::Value*) /home/ytausky/dev/mozilla-central/js/src/builtin/Promise.cpp:2082:30 (libxul.so+0x754124e)
51:07.13 pid:11698     #86 CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:468:15 (libxul.so+0x8206bcd)
51:07.13 pid:11698     #87 CallJSNativeConstructor(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:485 (libxul.so+0x8206bcd)
51:07.13 pid:11698     #88 InternalConstruct(JSContext*, js::AnyConstructArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:661 (libxul.so+0x8206bcd)
51:07.14 pid:11698     #89 js::ConstructFromStack(JSContext*, JS::CallArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:707:12 (libxul.so+0x81fb4cf)
51:07.14 pid:11698     #90 Interpret(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:3452 (libxul.so+0x81fb4cf)
51:07.14 pid:11698     #91 js::RunScript(JSContext*, js::RunState&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:447:12 (libxul.so+0x81ee332)
51:07.14 pid:11698     #92 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:587:15 (libxul.so+0x8205638)
51:07.14 pid:11698     #93 InternalCall(JSContext*, js::AnyInvokeArgs const&) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:614:12 (libxul.so+0x8206049)
51:07.14 pid:11698     #94 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/vm/Interpreter.cpp:633:10 (libxul.so+0x8206134)
51:07.14 pid:11698     #95 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/ytausky/dev/mozilla-central/js/src/jsapi.cpp:2975:12 (libxul.so+0x79c0df0)
51:07.14 pid:11698     #96 mozilla::dom::MessageListener::ReceiveMessage(JSContext*, JS::Handle<JS::Value>, mozilla::dom::ReceiveMessageArgument const&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dom/bindings/MessageManagerBinding.cpp:6874:8 (libxul.so+0x3390417)
51:07.14 pid:11698     #97 void mozilla::dom::MessageListener::ReceiveMessage<JS::Rooted<JS::Value> >(JS::Rooted<JS::Value> const&, mozilla::dom::ReceiveMessageArgument const&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/dom/MessageManagerBinding.h:778:12 (libxul.so+0x2ec4581)
51:07.14 pid:11698     #98 nsFrameMessageManager::ReceiveMessage(nsISupports*, nsFrameLoader*, bool, nsTSubstring<char16_t> const&, bool, mozilla::dom::ipc::StructuredCloneData*, mozilla::jsipc::CpowHolder*, nsIPrincipal*, nsTArray<mozilla::dom::ipc::StructuredCloneData>*, mozilla::ErrorResult&) /home/ytausky/dev/mozilla-central/dom/base/nsFrameMessageManager.cpp:820 (libxul.so+0x2ec4581)
51:07.14 pid:11698     #99 nsFrameMessageManager::ReceiveMessage(nsISupports*, nsFrameLoader*, nsTSubstring<char16_t> const&, bool, mozilla::dom::ipc::StructuredCloneData*, mozilla::jsipc::CpowHolder*, nsIPrincipal*, nsTArray<mozilla::dom::ipc::StructuredCloneData>*, mozilla::ErrorResult&) /home/ytausky/dev/mozilla-central/dom/base/nsFrameMessageManager.h:254:5 (libxul.so+0x4dc7595)
51:07.14 pid:11698     #100 mozilla::dom::TabChild::RecvAsyncMessage(nsTString<char16_t> const&, nsTArray<mozilla::jsipc::CpowEntry>&&, IPC::Principal const&, mozilla::dom::ClonedMessageData const&) /home/ytausky/dev/mozilla-central/dom/ipc/TabChild.cpp:2297 (libxul.so+0x4dc7595)
51:07.14 pid:11698     #101 non-virtual thunk to mozilla::dom::TabChild::RecvAsyncMessage(nsTString<char16_t> const&, nsTArray<mozilla::jsipc::CpowEntry>&&, IPC::Principal const&, mozilla::dom::ClonedMessageData const&) /home/ytausky/dev/mozilla-central/dom/ipc/TabChild.cpp (libxul.so+0x4dc776d)
51:07.14 pid:11698     #102 mozilla::dom::PBrowserChild::OnMessageReceived(IPC::Message const&) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/ipc/ipdl/PBrowserChild.cpp:2726:20 (libxul.so+0x22ea800)
51:07.14 pid:11698     #103 mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const&) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/ipc/ipdl/PContentChild.cpp:5450:28 (libxul.so+0x1f1c952)
51:07.14 pid:11698     #104 mozilla::dom::ContentChild::OnMessageReceived(IPC::Message const&) /home/ytausky/dev/mozilla-central/dom/ipc/ContentChild.cpp:3799:25 (libxul.so+0x4d773b2)
51:07.14 pid:11698     #105 mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2244:25 (libxul.so+0x1dbdffd)
51:07.14 pid:11698     #106 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2171:17 (libxul.so+0x1dbc2cf)
51:07.14 pid:11698     #107 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2008:5 (libxul.so+0x1dbcfb0)
51:07.14 pid:11698     #108 mozilla::ipc::MessageChannel::MessageTask::Run() /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2041:15 (libxul.so+0x1dbd701)
51:07.14 pid:11698     #109 mozilla::SchedulerGroup::Runnable::Run() /home/ytausky/dev/mozilla-central/xpcom/threads/SchedulerGroup.cpp:337:32 (libxul.so+0x1493fd8)
51:07.14 pid:11698     #110 nsThread::ProcessNextEvent(bool, bool*) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThread.cpp:1246:14 (libxul.so+0x14aba69)
51:07.14 pid:11698     #111 NS_ProcessNextEvent(nsIThread*, bool) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThreadUtils.cpp:530:10 (libxul.so+0x14aea05)
51:07.14 pid:11698     #112 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:125:5 (libxul.so+0x1dc209c)
51:07.14 pid:11698     #113 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:301:30 (libxul.so+0x1dc2b0b)
51:07.14 pid:11698     #114 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.14 pid:11698     #115 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.14 pid:11698     #116 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.14 pid:11698     #117 nsBaseAppShell::Run() /home/ytausky/dev/mozilla-central/widget/nsBaseAppShell.cpp:158:27 (libxul.so+0x5157f75)
51:07.14 pid:11698     #118 XRE_RunAppShell() /home/ytausky/dev/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:954:22 (libxul.so+0x734a56c)
51:07.15 pid:11698     #119 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:269:9 (libxul.so+0x1dc2abd)
51:07.15 pid:11698     #120 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.15 pid:11698     #121 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.15 pid:11698     #122 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.15 pid:11698     #123 XRE_InitChildProcess(int, char**, XREChildData const*) /home/ytausky/dev/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:780:34 (libxul.so+0x734a125)
51:07.15 pid:11698     #124 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/ytausky/dev/mozilla-central/toolkit/xre/Bootstrap.cpp:69:12 (libxul.so+0x7355a07)
51:07.15 pid:11698     #125 content_process_main(mozilla::Bootstrap*, int, char**) /home/ytausky/dev/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:50:30 (firefox+0xc3d71)
51:07.15 pid:11698     #126 main /home/ytausky/dev/mozilla-central/browser/app/nsBrowserApp.cpp:287 (firefox+0xc3d71)
51:07.15 pid:11698   Thread T15 'HTML5 Parser' (tid=11911, running) created by main thread at:
51:07.15 pid:11698     #0 pthread_create <null> (firefox+0x2f296)
51:07.15 pid:11698     #1 _PR_CreateThread /home/ytausky/dev/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:433:14 (libnspr4.so+0x40707)
51:07.15 pid:11698     #2 PR_CreateThread /home/ytausky/dev/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:518:12 (libnspr4.so+0x40447)
51:07.15 pid:11698     #3 nsThread::Init(nsTSubstring<char> const&) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThread.cpp:719:8 (libxul.so+0x14a9a98)
51:07.15 pid:11698     #4 nsThreadManager::NewNamedThread(nsTSubstring<char> const&, unsigned int, nsIThread**) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThreadManager.cpp:485:22 (libxul.so+0x14ae1e8)
51:07.15 pid:11698     #5 NS_NewNamedThread(nsTSubstring<char> const&, nsIThread**, nsIRunnable*, unsigned int) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThreadUtils.cpp:143:45 (libxul.so+0x14aff57)
51:07.15 pid:11698     #6 nsresult NS_NewNamedThread<13ul>(char const (&) [13ul], nsIThread**, nsIRunnable*, unsigned int) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:75:10 (libxul.so+0x272851f)
51:07.15 pid:11698     #7 nsHtml5Module::GetStreamParserThread() /home/ytausky/dev/mozilla-central/parser/html/nsHtml5Module.cpp:120 (libxul.so+0x272851f)
51:07.15 pid:11698     #8 nsHtml5StreamParser::nsHtml5StreamParser(nsHtml5TreeOpExecutor*, nsHtml5Parser*, eParserMode) /home/ytausky/dev/mozilla-central/parser/html/nsHtml5StreamParser.cpp:174:18 (libxul.so+0x27320e7)
51:07.15 pid:11698     #9 nsHtml5Parser::MarkAsNotScriptCreated(char const*) /home/ytausky/dev/mozilla-central/parser/html/nsHtml5Parser.cpp:608:35 (libxul.so+0x272bf84)
51:07.15 pid:11698     #10 nsHTMLDocument::StartDocumentLoad(char const*, nsIChannel*, nsILoadGroup*, nsISupports*, nsIStreamListener**, bool, nsIContentSink*) /home/ytausky/dev/mozilla-central/dom/html/nsHTMLDocument.cpp (libxul.so+0x4574d1a)
51:07.15 pid:11698     #11 nsContentDLF::CreateInstance(char const*, nsIChannel*, nsILoadGroup*, nsTSubstring<char> const&, nsIDocShell*, nsISupports*, nsIStreamListener**, nsIContentViewer**) /home/ytausky/dev/mozilla-central/layout/build/nsContentDLF.cpp:389:13 (libxul.so+0x58dd2ea)
51:07.15 pid:11698     #12 nsDocShell::NewContentViewerObj(nsTSubstring<char> const&, nsIRequest*, nsILoadGroup*, nsIStreamListener**, nsIContentViewer**) /home/ytausky/dev/mozilla-central/docshell/base/nsDocShell.cpp:8710:35 (libxul.so+0x6d9c58a)
51:07.15 pid:11698     #13 nsDocShell::CreateContentViewer(nsTSubstring<char> const&, nsIRequest*, nsIStreamListener**) /home/ytausky/dev/mozilla-central/docshell/base/nsDocShell.cpp:8499 (libxul.so+0x6d9c58a)
51:07.16 pid:11698     #14 nsDSURIContentListener::DoContent(nsTSubstring<char> const&, bool, nsIRequest*, nsIStreamListener**, bool*) /home/ytausky/dev/mozilla-central/docshell/base/nsDSURIContentListener.cpp:196:21 (libxul.so+0x6d9bc29)
51:07.16 pid:11698     #15 nsDocumentOpenInfo::TryContentListener(nsIURIContentListener*, nsIChannel*) /home/ytausky/dev/mozilla-central/uriloader/base/nsURILoader.cpp:759:28 (libxul.so+0x2678a44)
51:07.16 pid:11698     #16 nsDocumentOpenInfo::DispatchContent(nsIRequest*, nsISupports*) /home/ytausky/dev/mozilla-central/uriloader/base/nsURILoader.cpp:428:30 (libxul.so+0x26778e4)
51:07.16 pid:11698     #17 nsDocumentOpenInfo::OnStartRequest(nsIRequest*, nsISupports*) /home/ytausky/dev/mozilla-central/uriloader/base/nsURILoader.cpp:306:8 (libxul.so+0x2677242)
51:07.16 pid:11698     #18 mozilla::net::HttpChannelChild::DoOnStartRequest(nsIRequest*, nsISupports*) /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:775:28 (libxul.so+0x1b124e6)
51:07.16 pid:11698     #19 mozilla::net::HttpChannelChild::OnStartRequest(nsresult const&, mozilla::net::nsHttpResponseHead const&, bool const&, mozilla::net::nsHttpHeaderArray const&, mozilla::net::ParentLoadInfoForwarderArgs const&, bool const&, bool const&, unsigned long const&, int const&, unsigned int const&, nsTString<char> const&, nsTString<char> const&, mozilla::net::NetAddr const&, mozilla::net::NetAddr const&, unsigned int const&, nsTString<char> const&, long const&, bool const&, mozilla::net::ResourceTimingStruct const&) /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:642:3 (libxul.so+0x1b177b5)
51:07.16 pid:11698     #20 mozilla::net::StartRequestEvent::Run() /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:463:13 (libxul.so+0x1b66cc3)
51:07.16 pid:11698     #21 mozilla::net::ChannelEventQueue::RunOrEnqueue(mozilla::net::ChannelEvent*, bool) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/net/ChannelEventQueue.h:215:10 (libxul.so+0x1aa443c)
51:07.16 pid:11698     #22 mozilla::net::HttpChannelChild::RecvOnStartRequest(nsresult const&, mozilla::net::nsHttpResponseHead const&, bool const&, mozilla::net::nsHttpHeaderArray const&, mozilla::net::ParentLoadInfoForwarderArgs const&, bool const&, bool const&, unsigned long const&, int const&, unsigned int const&, nsTString<char> const&, nsTString<char> const&, mozilla::net::NetAddr const&, mozilla::net::NetAddr const&, short const&, unsigned int const&, nsTString<char> const&, long const&, bool const&, mozilla::net::ResourceTimingStruct const&) /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:528:12 (libxul.so+0x1b171e3)
51:07.16 pid:11698     #23 mozilla::net::PHttpChannelChild::OnMessageReceived(IPC::Message const&) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/ipc/ipdl/PHttpChannelChild.cpp:743:20 (libxul.so+0x202c795)
51:07.16 pid:11698     #24 mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const&) /home/ytausky/dev/mozilla-central/obj-x86_64-pc-linux-gnu/ipc/ipdl/PContentChild.cpp:5450:28 (libxul.so+0x1f1c952)
51:07.16 pid:11698     #25 mozilla::dom::ContentChild::OnMessageReceived(IPC::Message const&) /home/ytausky/dev/mozilla-central/dom/ipc/ContentChild.cpp:3799:25 (libxul.so+0x4d773b2)
51:07.16 pid:11698     #26 mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2244:25 (libxul.so+0x1dbdffd)
51:07.16 pid:11698     #27 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2171:17 (libxul.so+0x1dbc2cf)
51:07.16 pid:11698     #28 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2008:5 (libxul.so+0x1dbcfb0)
51:07.16 pid:11698     #29 mozilla::ipc::MessageChannel::MessageTask::Run() /home/ytausky/dev/mozilla-central/ipc/glue/MessageChannel.cpp:2041:15 (libxul.so+0x1dbd701)
51:07.16 pid:11698     #30 mozilla::SchedulerGroup::Runnable::Run() /home/ytausky/dev/mozilla-central/xpcom/threads/SchedulerGroup.cpp:337:32 (libxul.so+0x1493fd8)
51:07.16 pid:11698     #31 nsThread::ProcessNextEvent(bool, bool*) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThread.cpp:1246:14 (libxul.so+0x14aba69)
51:07.16 pid:11698     #32 NS_ProcessNextEvent(nsIThread*, bool) /home/ytausky/dev/mozilla-central/xpcom/threads/nsThreadUtils.cpp:530:10 (libxul.so+0x14aea05)
51:07.16 pid:11698     #33 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:125:5 (libxul.so+0x1dc209c)
51:07.16 pid:11698     #34 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:301:30 (libxul.so+0x1dc2b0b)
51:07.16 pid:11698     #35 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.16 pid:11698     #36 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.16 pid:11698     #37 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.16 pid:11698     #38 nsBaseAppShell::Run() /home/ytausky/dev/mozilla-central/widget/nsBaseAppShell.cpp:158:27 (libxul.so+0x5157f75)
51:07.16 pid:11698     #39 XRE_RunAppShell() /home/ytausky/dev/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:954:22 (libxul.so+0x734a56c)
51:07.16 pid:11698     #40 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /home/ytausky/dev/mozilla-central/ipc/glue/MessagePump.cpp:269:9 (libxul.so+0x1dc2abd)
51:07.16 pid:11698     #41 MessageLoop::RunInternal() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:325:10 (libxul.so+0x1d1459f)
51:07.16 pid:11698     #42 MessageLoop::RunHandler() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:318 (libxul.so+0x1d1459f)
51:07.16 pid:11698     #43 MessageLoop::Run() /home/ytausky/dev/mozilla-central/ipc/chromium/src/base/message_loop.cc:298 (libxul.so+0x1d1459f)
51:07.17 pid:11698     #44 XRE_InitChildProcess(int, char**, XREChildData const*) /home/ytausky/dev/mozilla-central/toolkit/xre/nsEmbedFunctions.cpp:780:34 (libxul.so+0x734a125)
51:07.17 pid:11698     #45 mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) /home/ytausky/dev/mozilla-central/toolkit/xre/Bootstrap.cpp:69:12 (libxul.so+0x7355a07)
51:07.17 pid:11698     #46 content_process_main(mozilla::Bootstrap*, int, char**) /home/ytausky/dev/mozilla-central/browser/app/../../ipc/contentproc/plugin-container.cpp:50:30 (firefox+0xc3d71)
51:07.17 pid:11698     #47 main /home/ytausky/dev/mozilla-central/browser/app/nsBrowserApp.cpp:287 (firefox+0xc3d71)
51:07.17 pid:11698 SUMMARY: ThreadSanitizer: data race /home/ytausky/dev/mozilla-central/netwerk/protocol/http/HttpChannelChild.cpp:269:7 in mozilla::net::HttpChannelChild::Release()
51:07.17 pid:11698 ==================

After some digging I found out that the conflict happens between the loads and stores of the bit fields in HttpChannelChild.
Do you have the changeset this was reproduced with so that we are sure the line numbers fit?  Thanks.
Ugh, I should have thought of that before I rebased... I'll make a new trace and record the changeset.
I ran TSan again, this time with revision d8a262837cd3 from mozilla-central. It might have been triggered under different circumstances than the previous one (I just grabbed one occurrence of it), but it's the same race.
Thanks! 

Read, https://hg.mozilla.org/mozilla-central/file/d8a262837cd3/netwerk/protocol/http/HttpChannelChild.cpp#l269:
if (mKeptAlive && count == 1 && mIPCOpen) {

Write, https://hg.mozilla.org/mozilla-central/file/d8a262837cd3/netwerk/protocol/http/HttpChannelChild.cpp#l1023:
mNeedToReportBytesRead = false;


mKeptAlive and mNeedToReportBytesRead are in one bit field.  This MUST be synchronized or separated!

Regression from bug 1240547 where my review requirement was not fulfilled:

https://bugzilla.mozilla.org/show_bug.cgi?id=1240547#c8
> The most important to review is if the flags can be used concurrently, since setting a packed flag is no longer an atomic operation.
Priority: -- → P1
Whiteboard: [necko-triaged]
Just a note: the write to mCacheNeedToReportBytesReadInitialized seems to belong to the same bit field sequence and should also be separated from mKeptAlive.
Eric, could you take a look?  This is a serious thing we should not let come up to release, IMO.
Assignee: nobody → erahm
(In reply to Honza Bambas (:mayhemer) from comment #6)
> Eric, could you take a look?  This is a serious thing we should not let come
> up to release, IMO.

I can look at it in the next couple weeks, if you need a fix sooner perhaps a necko person can look at it?
Flags: needinfo?(erahm)
OK, then maybe Valentin?
Flags: needinfo?(valentin.gosu)
Assignee: erahm → valentin.gosu
Flags: needinfo?(valentin.gosu)
Flags: needinfo?(erahm)
Pushed by valentin.gosu@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/5cb12d22a19b
Make variables atomic to avoid data race r=mayhemer
https://hg.mozilla.org/integration/autoland/rev/6e234b7bb49a
Add assertions that members in bitfields are only used on the main thread r=mayhemer
https://hg.mozilla.org/mozilla-central/rev/5cb12d22a19b
https://hg.mozilla.org/mozilla-central/rev/6e234b7bb49a
Status: NEW → RESOLVED
Closed: 9 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
You need to log in before you can comment on or make changes to this bug.