Closed Bug 1588827 Opened 3 years ago Closed 1 year ago

TSan: data race mozilla::net::nsHttpChannel::OnCacheEntryCheck vs. ~AutoCacheWaitFlags

Categories

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

71 Branch
defect

Tracking

()

RESOLVED DUPLICATE of bug 1614697

People

(Reporter: sosccc1, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

Steps to reproduce:

I built and ran firefox 71.0a1 with TSan in headless mode and found the following race report. Not sure if it's a false alarm. I searched in Bugzilla but didn't find similar races being reported. Unfortunately, I don't have a reproducer for this case.

OS: Ubuntu 18.04.2 LTS

Actual results:

WARNING: ThreadSanitizer: data race (pid=44771)
  Write of size 4 at 0x7b74001d175c by main thread:
    #0 ~AutoCacheWaitFlags /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.h:249:40 (libxul.so+0x4f03934)
    #1 mozilla::net::nsHttpChannel::OpenCacheEntryInternal(bool, nsIApplicationCache*, bool) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:4168 (libxul.so+0x4f03934)
    #2 mozilla::net::nsHttpChannel::OpenCacheEntry(bool) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:3917:10 (libxul.so+0x4eea4ea)
    #3 mozilla::net::nsHttpChannel::ConnectOnTailUnblock() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:725:8 (libxul.so+0x4ee9c57)
    #4 mozilla::net::nsHttpChannel::Connect() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:713:10 (libxul.so+0x4ee8cb7)
    #5 mozilla::net::nsHttpChannel::ContinueOnBeforeConnect(bool, nsresult) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:662:10 (libxul.so+0x4ee8180)
    #6 mozilla::net::nsHttpChannel::OnBeforeConnect() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:586:10 (libxul.so+0x4ee6ace)
    #7 mozilla::net::nsHttpChannel::PrepareToConnect() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:463:10 (libxul.so+0x4ee636b)
    #8 mozilla::net::nsHttpChannel::ContinueBeginConnectWithResult() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:6957:10 (libxul.so+0x4f133b3)
    #9 mozilla::net::nsHttpChannel::BeginConnect() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:6783:8 (libxul.so+0x4f117b2)
    #10 mozilla::net::nsHttpChannel::OnProxyAvailable(nsICancelable*, nsIChannel*, nsIProxyInfo*, nsresult) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:7055:10 (libxul.so+0x4f1465f)
    #11 non-virtual thunk to mozilla::net::nsHttpChannel::OnProxyAvailable(nsICancelable*, nsIChannel*, nsIProxyInfo*, nsresult) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x4f148d0)
    #12 mozilla::net::nsAsyncResolveRequest::DoCallback() /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:405:18 (libxul.so+0x4924bfc)
    #13 Run /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:269:20 (libxul.so+0x4922ef9)
    #14 operator() /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:251 (libxul.so+0x4922ef9)
    #15 std::_Function_handler<nsresult (mozilla::net::nsAsyncResolveRequest*, nsIProxyInfo*, bool), mozilla::net::nsAsyncResolveRequest::ProcessLocally(mozilla::net::nsProtocolInfo&, nsIProxyInfo*, bool)::'lambda'(mozilla::net::nsAsyncResolveRequest*, nsIProxyInfo*, bool)>::_M_invoke(std::_Any_data const&, mozilla::net::nsAsyncResolveRequest*&&, nsIProxyInfo*&&, bool&&) /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:282 (libxul.so+0x4922ef9)
    #16 operator() /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x48dfac2)
    #17 mozilla::net::nsAsyncResolveRequest::AsyncApplyFilters::Finish() /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:599 (libxul.so+0x48dfac2)
    #18 mozilla::net::nsAsyncResolveRequest::AsyncApplyFilters::ProcessNextFilter() /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:509:14 (libxul.so+0x48df71f)
    #19 mozilla::net::nsAsyncResolveRequest::AsyncApplyFilters::AsyncProcess(mozilla::net::nsAsyncResolveRequest*) /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:485:19 (libxul.so+0x48defc7)
    #20 mozilla::net::nsAsyncResolveRequest::ProcessLocally(mozilla::net::nsProtocolInfo&, nsIProxyInfo*, bool) /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:260:33 (libxul.so+0x491d06e)
    #21 mozilla::net::nsProtocolProxyService::AsyncResolveInternal(nsIChannel*, unsigned int, nsIProtocolProxyCallback*, nsICancelable**, bool, nsIEventTarget*) /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:1553:15 (libxul.so+0x48e5fb6)
    #22 mozilla::net::nsProtocolProxyService::AsyncResolve2(nsIChannel*, unsigned int, nsIProtocolProxyCallback*, nsIEventTarget*, nsICancelable**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsProtocolProxyService.cpp:1573:10 (libxul.so+0x48e6c3b)
    #23 mozilla::net::nsHttpChannel::ResolveProxy() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:3320:16 (libxul.so+0x4eff481)
    #24 mozilla::net::nsHttpChannel::MaybeResolveProxyAndBeginConnect() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:6543:7 (libxul.so+0x4f0fe75)
    #25 mozilla::net::nsHttpChannel::AsyncOpenFinal(mozilla::TimeStamp) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:6503:12 (libxul.so+0x4f0fd77)
    #26 mozilla::net::nsHttpChannel::AsyncOpen(nsIStreamListener*) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:6480:5 (libxul.so+0x4f0f8e4)
    #27 non-virtual thunk to mozilla::net::nsHttpChannel::AsyncOpen(nsIStreamListener*) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x4f0fdf4)
    #28 mozilla::dom::FetchDriver::HttpFetch(nsTSubstring<char> const&) /home/neo/firefox/src/mozilla-central/dom/fetch/FetchDriver.cpp:720:16 (libxul.so+0x7cd975f)
    #29 mozilla::dom::FetchDriver::Fetch(mozilla::dom::AbortSignalImpl*, mozilla::dom::FetchDriverObserver*) /home/neo/firefox/src/mozilla-central/dom/fetch/FetchDriver.cpp:400:8 (libxul.so+0x7cd5da8)
    #30 mozilla::dom::FetchRequest(nsIGlobalObject*, mozilla::dom::RequestOrUSVString const&, mozilla::dom::RequestInit const&, mozilla::dom::CallerType, mozilla::ErrorResult&) /home/neo/firefox/src/mozilla-central/dom/fetch/Fetch.cpp:521:18 (libxul.so+0x7cd2e04)
    #31 SandboxFetch /home/neo/firefox/src/mozilla-central/js/xpconnect/src/Sandbox.cpp:307:35 (libxul.so+0x58efae5)
    #32 SandboxFetchPromise(JSContext*, unsigned int, JS::Value*) /home/neo/firefox/src/mozilla-central/js/xpconnect/src/Sandbox.cpp:320 (libxul.so+0x58efae5)
    #33 CallJSNative /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:457:13 (libxul.so+0xaf86021)
    #34 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:549 (libxul.so+0xaf86021)
    #35 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #36 CallFromStack /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:622:10 (libxul.so+0xaf7b117)
    #37 Interpret(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:3111 (libxul.so+0xaf7b117)
    #38 js::RunScript(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:424:10 (libxul.so+0xaf6d2e3)
    #39 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:590:13 (libxul.so+0xaf86889)
    #40 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #41 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #42 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/SelfHosting.cpp:1658:10 (libxul.so+0xb314d73)
    #43 js::jit::InterpretResume(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/jit/VMFunctions.cpp:982:10 (libxul.so+0xb95afde)
    #44 <null> <null> (0x7fb146423774)
    #45 js::RunScript(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:409:32 (libxul.so+0xaf6d21e)
    #46 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:590:13 (libxul.so+0xaf86889)
    #47 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #48 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #49 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/SelfHosting.cpp:1658:10 (libxul.so+0xb314d73)
    #50 AsyncFunctionResume(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, ResumeKind, JS::Handle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/AsyncFunction.cpp:116:8 (libxul.so+0xb0df789)
    #51 js::AsyncFunctionAwaitedFulfilled(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, JS::Handle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/AsyncFunction.cpp:147:10 (libxul.so+0xb0df4eb)
    #52 AsyncFunctionPromiseReactionJob /home/neo/firefox/src/mozilla-central/js/src/builtin/Promise.cpp:1495:12 (libxul.so+0xb03f14e)
    #53 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /home/neo/firefox/src/mozilla-central/js/src/builtin/Promise.cpp:1653 (libxul.so+0xb03f14e)
    #54 CallJSNative /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:457:13 (libxul.so+0xaf86021)
    #55 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:549 (libxul.so+0xaf86021)
    #56 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #57 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #58 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/jsapi.cpp:2722:10 (libxul.so+0xb4f10a0)
    #59 mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&) /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dom/bindings/PromiseBinding.cpp:26:8 (libxul.so+0x6cbdb48)
    #60 Call /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x4699816)
    #61 Call /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:104 (libxul.so+0x4699816)
    #62 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:245 (libxul.so+0x4699816)
    #63 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:667:17 (libxul.so+0x467e1b4)
    #64 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:496:3 (libxul.so+0x467e6f1)
    #65 XPCJSContext::AfterProcessTask(unsigned int) /home/neo/firefox/src/mozilla-central/js/xpconnect/src/XPCJSContext.cpp:1326:28 (libxul.so+0x58dc7cf)
    #66 nsThread::ProcessNextEvent(bool, bool*) /home/neo/firefox/src/mozilla-central/xpcom/threads/nsThread.cpp:1283:24 (libxul.so+0x478bcc0)
    #67 NS_ProcessNextEvent(nsIThread*, bool) /home/neo/firefox/src/mozilla-central/xpcom/threads/nsThreadUtils.cpp:486:10 (libxul.so+0x478ec95)
    #68 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/neo/firefox/src/mozilla-central/ipc/glue/MessagePump.cpp:88:21 (libxul.so+0x51b22f2)
    #69 RunInternal /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:315:10 (libxul.so+0x50e981c)
    #70 RunHandler /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:308 (libxul.so+0x50e981c)
    #71 MessageLoop::Run() /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:290 (libxul.so+0x50e981c)
    #72 nsBaseAppShell::Run() /home/neo/firefox/src/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0x8c4c425)
    #73 nsAppStartup::Run() /home/neo/firefox/src/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:276:30 (libxul.so+0xacb71a2)
    #74 XREMain::XRE_mainRun() /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4600:22 (libxul.so+0xade1fbc)
    #75 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4735:8 (libxul.so+0xade2d82)
    #76 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4816:21 (libxul.so+0xade338a)
    #77 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xaded007)
    #78 do_main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:218:22 (firefox+0x120aa9)
    #79 main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:300 (firefox+0x120aa9)

  Previous write of size 4 at 0x7b74001d175c by thread T18 (mutexes: write M114966):
    #0 mozilla::net::nsHttpChannel::OnCacheEntryCheck(nsICacheEntry*, nsIApplicationCache*, unsigned int*) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:4231:25 (libxul.so+0x4f04277)
    #1 non-virtual thunk to mozilla::net::nsHttpChannel::OnCacheEntryCheck(nsICacheEntry*, nsIApplicationCache*, unsigned int*) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x4f07147)
    #2 mozilla::net::CacheEntry::InvokeCallback(mozilla::net::CacheEntry::Callback&) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheEntry.cpp:741:46 (libxul.so+0x4d405bf)
    #3 mozilla::net::CacheEntry::InvokeCallbacks(bool) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheEntry.cpp:668:30 (libxul.so+0x4d3fd8e)
    #4 mozilla::net::CacheEntry::InvokeCallbacks() /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheEntry.cpp:610:7 (libxul.so+0x4d3ce08)
    #5 mozilla::net::CacheEntry::OnFileReady(nsresult, bool) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheEntry.cpp:498:3 (libxul.so+0x4d3e990)
    #6 non-virtual thunk to mozilla::net::CacheEntry::OnFileReady(nsresult, bool) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheEntry.cpp (libxul.so+0x4d3ebbd)
    #7 mozilla::net::CacheFile::OnMetadataRead(nsresult) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheFile.cpp:643:13 (libxul.so+0x4d4e3f9)
    #8 non-virtual thunk to mozilla::net::CacheFile::OnMetadataRead(nsresult) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheFile.cpp (libxul.so+0x4d4ef74)
    #9 mozilla::net::CacheFileMetadata::OnDataRead(mozilla::net::CacheFileHandle*, char*, nsresult) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheFileMetadata.cpp (libxul.so+0x4d80f1d)
    #10 mozilla::net::ReadEvent::Run() /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheFileIOManager.cpp:704:16 (libxul.so+0x4da02f3)
    #11 mozilla::net::CacheIOThread::LoopOneLevel(unsigned int) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheIOThread.cpp:545:22 (libxul.so+0x4d8712b)
    #12 mozilla::net::CacheIOThread::ThreadFunc() /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheIOThread.cpp:483:9 (libxul.so+0x4d86a5b)
    #13 mozilla::net::CacheIOThread::ThreadFunc(void*) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheIOThread.cpp:424:11 (libxul.so+0x4d861fc)
    #14 _pt_root /home/neo/firefox/src/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x574be)

  Location is heap block of size 2120 at 0x7b74001d1000 allocated by main thread:
    #0 malloc /home/neo/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:672 (firefox+0xc9178)
    #1 moz_xmalloc /home/neo/firefox/src/mozilla-central/memory/mozalloc/mozalloc.cpp:52:15 (firefox+0x1220ba)
    #2 operator new /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/cxxalloc.h:33:10 (libxul.so+0x4e00df2)
    #3 mozilla::net::nsHttpHandler::NewProxiedChannel(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpHandler.cpp:2047 (libxul.so+0x4e00df2)
    #4 mozilla::net::nsHttpsHandler::NewProxiedChannel(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpHandler.h:798:3 (libxul.so+0x4e04e84)
    #5 mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI*, nsIURI*, unsigned int, nsILoadInfo*, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsIOService.cpp:953:15 (libxul.so+0x48adc25)
    #6 mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI*, nsIURI*, unsigned int, nsINode*, nsIPrincipal*, nsIPrincipal*, mozilla::Maybe<mozilla::dom::ClientInfo> const&, mozilla::Maybe<mozilla::dom::ServiceWorkerDescriptor> const&, unsigned int, unsigned int, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsIOService.cpp:928:10 (libxul.so+0x48ad83b)
    #7 mozilla::net::nsIOService::NewChannelFromURIWithClientAndController(nsIURI*, nsINode*, nsIPrincipal*, nsIPrincipal*, mozilla::Maybe<mozilla::dom::ClientInfo> const&, mozilla::Maybe<mozilla::dom::ServiceWorkerDescriptor> const&, unsigned int, unsigned int, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsIOService.cpp:868:10 (libxul.so+0x48ad761)
    #8 NS_NewChannelInternal(nsIChannel**, nsIURI*, nsINode*, nsIPrincipal*, nsIPrincipal*, mozilla::Maybe<mozilla::dom::ClientInfo> const&, mozilla::Maybe<mozilla::dom::ServiceWorkerDescriptor> const&, unsigned int, unsigned int, nsICookieSettings*, mozilla::dom::PerformanceStorage*, nsILoadGroup*, nsIInterfaceRequestor*, unsigned int, nsIIOService*) /home/neo/firefox/src/mozilla-central/netwerk/base/nsNetUtil.cpp:380:20 (libxul.so+0x48c583f)
    #9 NS_NewChannel(nsIChannel**, nsIURI*, nsIPrincipal*, unsigned int, unsigned int, nsICookieSettings*, mozilla::dom::PerformanceStorage*, nsILoadGroup*, nsIInterfaceRequestor*, unsigned int, nsIIOService*) /home/neo/firefox/src/mozilla-central/netwerk/base/nsNetUtil.cpp:323:10 (libxul.so+0x48b2152)
    #10 mozilla::dom::FetchDriver::HttpFetch(nsTSubstring<char> const&) /home/neo/firefox/src/mozilla-central/dom/fetch/FetchDriver.cpp:530:9 (libxul.so+0x7cd8763)
    #11 mozilla::dom::FetchDriver::Fetch(mozilla::dom::AbortSignalImpl*, mozilla::dom::FetchDriverObserver*) /home/neo/firefox/src/mozilla-central/dom/fetch/FetchDriver.cpp:400:8 (libxul.so+0x7cd5da8)
    #12 mozilla::dom::FetchRequest(nsIGlobalObject*, mozilla::dom::RequestOrUSVString const&, mozilla::dom::RequestInit const&, mozilla::dom::CallerType, mozilla::ErrorResult&) /home/neo/firefox/src/mozilla-central/dom/fetch/Fetch.cpp:521:18 (libxul.so+0x7cd2e04)
    #13 SandboxFetch /home/neo/firefox/src/mozilla-central/js/xpconnect/src/Sandbox.cpp:307:35 (libxul.so+0x58efae5)
    #14 SandboxFetchPromise(JSContext*, unsigned int, JS::Value*) /home/neo/firefox/src/mozilla-central/js/xpconnect/src/Sandbox.cpp:320 (libxul.so+0x58efae5)
    #15 CallJSNative /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:457:13 (libxul.so+0xaf86021)
    #16 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:549 (libxul.so+0xaf86021)
    #17 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #18 CallFromStack /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:622:10 (libxul.so+0xaf7b117)
    #19 Interpret(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:3111 (libxul.so+0xaf7b117)
    #20 js::RunScript(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:424:10 (libxul.so+0xaf6d2e3)
    #21 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:590:13 (libxul.so+0xaf86889)
    #22 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #23 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #24 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/SelfHosting.cpp:1658:10 (libxul.so+0xb314d73)
    #25 js::jit::InterpretResume(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/jit/VMFunctions.cpp:982:10 (libxul.so+0xb95afde)
    #26 <null> <null> (0x7fb146423774)
    #27 js::RunScript(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:409:32 (libxul.so+0xaf6d21e)
    #28 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:590:13 (libxul.so+0xaf86889)
    #29 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #30 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #31 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/SelfHosting.cpp:1658:10 (libxul.so+0xb314d73)
    #32 AsyncFunctionResume(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, ResumeKind, JS::Handle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/AsyncFunction.cpp:116:8 (libxul.so+0xb0df789)
    #33 js::AsyncFunctionAwaitedFulfilled(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, JS::Handle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/AsyncFunction.cpp:147:10 (libxul.so+0xb0df4eb)
    #34 AsyncFunctionPromiseReactionJob /home/neo/firefox/src/mozilla-central/js/src/builtin/Promise.cpp:1495:12 (libxul.so+0xb03f14e)
    #35 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /home/neo/firefox/src/mozilla-central/js/src/builtin/Promise.cpp:1653 (libxul.so+0xb03f14e)
    #36 CallJSNative /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:457:13 (libxul.so+0xaf86021)
    #37 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:549 (libxul.so+0xaf86021)
    #38 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #39 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #40 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/jsapi.cpp:2722:10 (libxul.so+0xb4f10a0)
    #41 mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&) /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dom/bindings/PromiseBinding.cpp:26:8 (libxul.so+0x6cbdb48)
    #42 Call /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x4699816)
    #43 Call /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:104 (libxul.so+0x4699816)
    #44 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:245 (libxul.so+0x4699816)
    #45 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:667:17 (libxul.so+0x467e1b4)
    #46 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:496:3 (libxul.so+0x467e6f1)
    #47 XPCJSContext::AfterProcessTask(unsigned int) /home/neo/firefox/src/mozilla-central/js/xpconnect/src/XPCJSContext.cpp:1326:28 (libxul.so+0x58dc7cf)
    #48 nsThread::ProcessNextEvent(bool, bool*) /home/neo/firefox/src/mozilla-central/xpcom/threads/nsThread.cpp:1283:24 (libxul.so+0x478bcc0)
    #49 NS_ProcessNextEvent(nsIThread*, bool) /home/neo/firefox/src/mozilla-central/xpcom/threads/nsThreadUtils.cpp:486:10 (libxul.so+0x478ec95)
    #50 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/neo/firefox/src/mozilla-central/ipc/glue/MessagePump.cpp:88:21 (libxul.so+0x51b22f2)
    #51 RunInternal /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:315:10 (libxul.so+0x50e981c)
    #52 RunHandler /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:308 (libxul.so+0x50e981c)
    #53 MessageLoop::Run() /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:290 (libxul.so+0x50e981c)
    #54 nsBaseAppShell::Run() /home/neo/firefox/src/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0x8c4c425)
    #55 nsAppStartup::Run() /home/neo/firefox/src/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:276:30 (libxul.so+0xacb71a2)
    #56 XREMain::XRE_mainRun() /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4600:22 (libxul.so+0xade1fbc)
    #57 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4735:8 (libxul.so+0xade2d82)
    #58 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4816:21 (libxul.so+0xade338a)
    #59 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xaded007)
    #60 do_main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:218:22 (firefox+0x120aa9)
    #61 main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:300 (firefox+0x120aa9)

  Mutex M114966 (0x7b74001d1810) created at:
    #0 pthread_mutex_init /home/neo/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1223 (firefox+0xa9ada)
    #1 mozilla::detail::MutexImpl::MutexImpl(mozilla::recordreplay::Behavior) /home/neo/firefox/src/mozilla-central/mozglue/misc/Mutex_posix.cpp:103:3 (firefox+0x17c992)
    #2 OffTheBooksMutex /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/Mutex.h:47:9 (libxul.so+0x4ee4cef)
    #3 Mutex /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/Mutex.h:129 (libxul.so+0x4ee4cef)
    #4 mozilla::net::nsHttpChannel::nsHttpChannel() /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:358 (libxul.so+0x4ee4cef)
    #5 mozilla::net::nsHttpHandler::NewProxiedChannel(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpHandler.cpp:2047:23 (libxul.so+0x4e00dfd)
    #6 mozilla::net::nsHttpsHandler::NewProxiedChannel(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpHandler.h:798:3 (libxul.so+0x4e04e84)
    #7 mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI*, nsIURI*, unsigned int, nsILoadInfo*, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsIOService.cpp:953:15 (libxul.so+0x48adc25)
    #8 mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI*, nsIURI*, unsigned int, nsINode*, nsIPrincipal*, nsIPrincipal*, mozilla::Maybe<mozilla::dom::ClientInfo> const&, mozilla::Maybe<mozilla::dom::ServiceWorkerDescriptor> const&, unsigned int, unsigned int, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsIOService.cpp:928:10 (libxul.so+0x48ad83b)
    #9 mozilla::net::nsIOService::NewChannelFromURIWithClientAndController(nsIURI*, nsINode*, nsIPrincipal*, nsIPrincipal*, mozilla::Maybe<mozilla::dom::ClientInfo> const&, mozilla::Maybe<mozilla::dom::ServiceWorkerDescriptor> const&, unsigned int, unsigned int, nsIChannel**) /home/neo/firefox/src/mozilla-central/netwerk/base/nsIOService.cpp:868:10 (libxul.so+0x48ad761)
    #10 NS_NewChannelInternal(nsIChannel**, nsIURI*, nsINode*, nsIPrincipal*, nsIPrincipal*, mozilla::Maybe<mozilla::dom::ClientInfo> const&, mozilla::Maybe<mozilla::dom::ServiceWorkerDescriptor> const&, unsigned int, unsigned int, nsICookieSettings*, mozilla::dom::PerformanceStorage*, nsILoadGroup*, nsIInterfaceRequestor*, unsigned int, nsIIOService*) /home/neo/firefox/src/mozilla-central/netwerk/base/nsNetUtil.cpp:380:20 (libxul.so+0x48c583f)
    #11 NS_NewChannel(nsIChannel**, nsIURI*, nsIPrincipal*, unsigned int, unsigned int, nsICookieSettings*, mozilla::dom::PerformanceStorage*, nsILoadGroup*, nsIInterfaceRequestor*, unsigned int, nsIIOService*) /home/neo/firefox/src/mozilla-central/netwerk/base/nsNetUtil.cpp:323:10 (libxul.so+0x48b2152)
    #12 mozilla::dom::FetchDriver::HttpFetch(nsTSubstring<char> const&) /home/neo/firefox/src/mozilla-central/dom/fetch/FetchDriver.cpp:530:9 (libxul.so+0x7cd8763)
    #13 mozilla::dom::FetchDriver::Fetch(mozilla::dom::AbortSignalImpl*, mozilla::dom::FetchDriverObserver*) /home/neo/firefox/src/mozilla-central/dom/fetch/FetchDriver.cpp:400:8 (libxul.so+0x7cd5da8)
    #14 mozilla::dom::FetchRequest(nsIGlobalObject*, mozilla::dom::RequestOrUSVString const&, mozilla::dom::RequestInit const&, mozilla::dom::CallerType, mozilla::ErrorResult&) /home/neo/firefox/src/mozilla-central/dom/fetch/Fetch.cpp:521:18 (libxul.so+0x7cd2e04)
    #15 SandboxFetch /home/neo/firefox/src/mozilla-central/js/xpconnect/src/Sandbox.cpp:307:35 (libxul.so+0x58efae5)
    #16 SandboxFetchPromise(JSContext*, unsigned int, JS::Value*) /home/neo/firefox/src/mozilla-central/js/xpconnect/src/Sandbox.cpp:320 (libxul.so+0x58efae5)
    #17 CallJSNative /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:457:13 (libxul.so+0xaf86021)
    #18 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:549 (libxul.so+0xaf86021)
    #19 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #20 CallFromStack /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:622:10 (libxul.so+0xaf7b117)
    #21 Interpret(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:3111 (libxul.so+0xaf7b117)
    #22 js::RunScript(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:424:10 (libxul.so+0xaf6d2e3)
    #23 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:590:13 (libxul.so+0xaf86889)
    #24 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #25 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #26 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/SelfHosting.cpp:1658:10 (libxul.so+0xb314d73)
    #27 js::jit::InterpretResume(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/jit/VMFunctions.cpp:982:10 (libxul.so+0xb95afde)
    #28 <null> <null> (0x7fb146423774)
    #29 js::RunScript(JSContext*, js::RunState&) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:409:32 (libxul.so+0xaf6d21e)
    #30 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:590:13 (libxul.so+0xaf86889)
    #31 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #32 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #33 js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/SelfHosting.cpp:1658:10 (libxul.so+0xb314d73)
    #34 AsyncFunctionResume(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, ResumeKind, JS::Handle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/AsyncFunction.cpp:116:8 (libxul.so+0xb0df789)
    #35 js::AsyncFunctionAwaitedFulfilled(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject*>, JS::Handle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/vm/AsyncFunction.cpp:147:10 (libxul.so+0xb0df4eb)
    #36 AsyncFunctionPromiseReactionJob /home/neo/firefox/src/mozilla-central/js/src/builtin/Promise.cpp:1495:12 (libxul.so+0xb03f14e)
    #37 PromiseReactionJob(JSContext*, unsigned int, JS::Value*) /home/neo/firefox/src/mozilla-central/js/src/builtin/Promise.cpp:1653 (libxul.so+0xb03f14e)
    #38 CallJSNative /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:457:13 (libxul.so+0xaf86021)
    #39 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:549 (libxul.so+0xaf86021)
    #40 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:618:10 (libxul.so+0xaf873f8)
    #41 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) /home/neo/firefox/src/mozilla-central/js/src/vm/Interpreter.cpp:635:8 (libxul.so+0xaf874ec)
    #42 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /home/neo/firefox/src/mozilla-central/js/src/jsapi.cpp:2722:10 (libxul.so+0xb4f10a0)
    #43 mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&) /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dom/bindings/PromiseBinding.cpp:26:8 (libxul.so+0x6cbdb48)
    #44 Call /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:91:12 (libxul.so+0x4699816)
    #45 Call /home/neo/firefox/src/mozilla-central/objdir-ff-tsan/dist/include/mozilla/dom/PromiseBinding.h:104 (libxul.so+0x4699816)
    #46 mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:245 (libxul.so+0x4699816)
    #47 mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:667:17 (libxul.so+0x467e1b4)
    #48 mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) /home/neo/firefox/src/mozilla-central/xpcom/base/CycleCollectedJSContext.cpp:496:3 (libxul.so+0x467e6f1)
    #49 XPCJSContext::AfterProcessTask(unsigned int) /home/neo/firefox/src/mozilla-central/js/xpconnect/src/XPCJSContext.cpp:1326:28 (libxul.so+0x58dc7cf)
    #50 nsThread::ProcessNextEvent(bool, bool*) /home/neo/firefox/src/mozilla-central/xpcom/threads/nsThread.cpp:1283:24 (libxul.so+0x478bcc0)
    #51 NS_ProcessNextEvent(nsIThread*, bool) /home/neo/firefox/src/mozilla-central/xpcom/threads/nsThreadUtils.cpp:486:10 (libxul.so+0x478ec95)
    #52 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/neo/firefox/src/mozilla-central/ipc/glue/MessagePump.cpp:88:21 (libxul.so+0x51b22f2)
    #53 RunInternal /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:315:10 (libxul.so+0x50e981c)
    #54 RunHandler /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:308 (libxul.so+0x50e981c)
    #55 MessageLoop::Run() /home/neo/firefox/src/mozilla-central/ipc/chromium/src/base/message_loop.cc:290 (libxul.so+0x50e981c)
    #56 nsBaseAppShell::Run() /home/neo/firefox/src/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0x8c4c425)
    #57 nsAppStartup::Run() /home/neo/firefox/src/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:276:30 (libxul.so+0xacb71a2)
    #58 XREMain::XRE_mainRun() /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4600:22 (libxul.so+0xade1fbc)
    #59 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4735:8 (libxul.so+0xade2d82)
    #60 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4816:21 (libxul.so+0xade338a)
    #61 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xaded007)
    #62 do_main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:218:22 (firefox+0x120aa9)
    #63 main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:300 (firefox+0x120aa9)

  Thread T18 'Cache2 I/O' (tid=44799, running) created by main thread at:
    #0 pthread_create /home/neo/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:975 (firefox+0xa9586)
    #1 _PR_CreateThread /home/neo/firefox/src/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x50761)
    #2 PR_CreateThread /home/neo/firefox/src/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x41c97)
    #3 Init /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheIOThread.cpp:262:7 (libxul.so+0x4d6842a)
    #4 mozilla::net::CacheFileIOManager::InitInternal() /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheFileIOManager.cpp:1162 (libxul.so+0x4d6842a)
    #5 mozilla::net::CacheFileIOManager::Init() /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheFileIOManager.cpp:1150:24 (libxul.so+0x4d67f73)
    #6 mozilla::net::CacheObserver::Observe(nsISupports*, char const*, char16_t const*) /home/neo/firefox/src/mozilla-central/netwerk/cache2/CacheObserver.cpp:380:5 (libxul.so+0x4d993ab)
    #7 nsObserverList::NotifyObservers(nsISupports*, char const*, char16_t const*) /home/neo/firefox/src/mozilla-central/xpcom/ds/nsObserverList.cpp:66:19 (libxul.so+0x46e0bc4)
    #8 nsObserverService::NotifyObservers(nsISupports*, char const*, char16_t const*) /home/neo/firefox/src/mozilla-central/xpcom/ds/nsObserverService.cpp:291:19 (libxul.so+0x46ef083)
    #9 nsXREDirProvider::DoStartup() /home/neo/firefox/src/mozilla-central/toolkit/xre/nsXREDirProvider.cpp:916:13 (libxul.so+0xadf03db)
    #10 XREMain::XRE_mainRun() /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4411:16 (libxul.so+0xade1b16)
    #11 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4735:8 (libxul.so+0xade2d82)
    #12 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/nsAppRunner.cpp:4816:21 (libxul.so+0xade338a)
    #13 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/neo/firefox/src/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xaded007)
    #14 do_main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:218:22 (firefox+0x120aa9)
    #15 main /home/neo/firefox/src/mozilla-central/browser/app/nsBrowserApp.cpp:300 (firefox+0x120aa9)

SUMMARY: ThreadSanitizer: data race /home/neo/firefox/src/mozilla-central/netwerk/protocol/http/nsHttpChannel.h:249:40 in ~AutoCacheWaitFlags
Component: Untriaged → Networking: HTTP
Product: Firefox → Core
See Also: → 846576

Thank you for filing. TSan is currently not stable on Firefox, we are working on setting up a TSan build and CI. Before we have both in place, further testing of Firefox with TSan is unlikely to be useful.

Blocks: tsan
See Also: 846576
Summary: Data race in nsHttpChannel reported by TSan → TSan: data race mozilla::net::nsHttpChannel::OnCacheEntryCheck vs. ~AutoCacheWaitFlags

P3 based on comment #1.

Priority: -- → P3
Whiteboard: [necko-triaged]

This is a duplicate of bug 1614697, which was since fixed.

Status: UNCONFIRMED → RESOLVED
Closed: 1 year ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1614697
You need to log in before you can comment on or make changes to this bug.