Closed Bug 1932783 Opened 11 months ago Closed 11 months ago

ThreadSanitizer: data race [@ nsDNSRecord::GetCanonicalName] vs. [@ nsHostResolver::ResolveHost]

Categories

(Core :: Networking: DNS, defect, P2)

defect

Tracking

()

RESOLVED FIXED
135 Branch
Tracking Status
firefox-esr115 --- wontfix
firefox-esr128 134+ fixed
firefox133 --- wontfix
firefox134 + fixed
firefox135 + fixed

People

(Reporter: tsmith, Assigned: kershaw)

References

(Blocks 2 open bugs, )

Details

(Keywords: csectype-race, sec-moderate, Whiteboard: [necko-triaged] [necko-priority-queue][adv-main134+r][adv-ESR128.6+r])

Attachments

(3 files)

Found with m-c 20241121-e4305da6f59e (--enable-thread-sanitizer --enable-fuzzing)

This was found by visiting a live website with a TSan build.

STR:

  • Launch browser and visit site

This issue was triggered by visiting http://amainhobbies.com/.

WARNING: ThreadSanitizer: data race (pid=96070)
  Write of size 4 at 0x72480026efc4 by main thread (mutexes: write M0, write M1):
    #0 nsHostResolver::ResolveHost(nsTSubstring<char> const&, nsTSubstring<char> const&, int, unsigned short, mozilla::OriginAttributes const&, nsIDNSService::DNSFlags, unsigned short, nsResolveHostCallback*) /builds/worker/checkouts/gecko/netwerk/dns/nsHostResolver.cpp:677:20 (libxul.so+0x390eab4) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #1 nsDNSService::AsyncResolveInternal(nsTSubstring<char> const&, unsigned short, nsIDNSService::DNSFlags, nsIDNSAdditionalInfo*, nsIDNSListener*, nsIEventTarget*, mozilla::OriginAttributes const&, nsICancelable**) /builds/worker/checkouts/gecko/netwerk/dns/nsDNSService2.cpp:1091:13 (libxul.so+0x390d2d8) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #2 AsyncResolveNative /builds/worker/checkouts/gecko/netwerk/dns/nsDNSService2.cpp:1161:10 (libxul.so+0x390fb05) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #3 non-virtual thunk to nsDNSService::AsyncResolveNative(nsTSubstring<char> const&, nsIDNSService::ResolveType, nsIDNSService::DNSFlags, nsIDNSAdditionalInfo*, nsIDNSListener*, nsIEventTarget*, mozilla::OriginAttributes const&, nsICancelable**) /builds/worker/checkouts/gecko/netwerk/dns/nsDNSService2.cpp (libxul.so+0x390fb05)
    #4 mozilla::net::HTTPSRecordResolver::FetchHTTPSRRInternal(nsIEventTarget*, nsICancelable**) /builds/worker/checkouts/gecko/netwerk/protocol/http/HTTPSRecordResolver.cpp:76:13 (libxul.so+0x3c84a03) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #5 mozilla::net::nsHttpTransaction::Init(unsigned int, mozilla::net::nsHttpConnectionInfo*, mozilla::net::nsHttpRequestHead*, nsIInputStream*, unsigned long, bool, nsIEventTarget*, nsIInterfaceRequestor*, nsITransportEventSink*, unsigned long, mozilla::net::HttpTrafficCategory, nsIRequestContext*, mozilla::net::ClassOfService, unsigned int, bool, unsigned long, std::function<void (mozilla::net::TransactionObserverResult&&)>&&, std::function<nsresult (unsigned int, nsTSubstring<char> const&, nsTSubstring<char> const&, mozilla::net::HttpTransactionShell*)>&&, mozilla::net::HttpTransactionShell*, unsigned int) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpTransaction.cpp:382:23 (libxul.so+0x3e31603) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #6 non-virtual thunk to mozilla::net::nsHttpTransaction::Init(unsigned int, mozilla::net::nsHttpConnectionInfo*, mozilla::net::nsHttpRequestHead*, nsIInputStream*, unsigned long, bool, nsIEventTarget*, nsIInterfaceRequestor*, nsITransportEventSink*, unsigned long, mozilla::net::HttpTrafficCategory, nsIRequestContext*, mozilla::net::ClassOfService, unsigned int, bool, unsigned long, std::function<void (mozilla::net::TransactionObserverResult&&)>&&, std::function<nsresult (unsigned int, nsTSubstring<char> const&, nsTSubstring<char> const&, mozilla::net::HttpTransactionShell*)>&&, mozilla::net::HttpTransactionShell*, unsigned int) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpTransaction.cpp (libxul.so+0x3e31cd9) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #7 mozilla::net::nsHttpChannel::InitTransaction() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1828:22 (libxul.so+0x3db8a18) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #8 mozilla::net::nsHttpChannel::DispatchTransaction(mozilla::net::HttpTransactionShell*) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1335:17 (libxul.so+0x3db7fb3) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #9 DoConnectActual /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1328:10 (libxul.so+0x3db6abf) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #10 mozilla::net::nsHttpChannel::DoConnect(mozilla::net::HttpTransactionShell*) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1315:10 (libxul.so+0x3db6abf)
    #11 mozilla::net::nsHttpChannel::ContinueConnect() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1277:17 (libxul.so+0x3db4f2d) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #12 mozilla::net::nsHttpChannel::TriggerNetwork() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:10504:10 (libxul.so+0x3db60be) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #13 mozilla::net::nsHttpChannel::OnCacheEntryAvailableInternal(nsICacheEntry*, bool, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:4808:10 (libxul.so+0x3dce0fa) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #14 mozilla::net::nsHttpChannel::OnCacheEntryAvailable(nsICacheEntry*, bool, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:4738:8 (libxul.so+0x3dcdda0) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #15 non-virtual thunk to mozilla::net::nsHttpChannel::OnCacheEntryAvailable(nsICacheEntry*, bool, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x3dce1e0) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #16 mozilla::net::CacheEntry::InvokeAvailableCallback(mozilla::net::CacheEntry::Callback const&) /builds/worker/checkouts/gecko/netwerk/cache2/CacheEntry.cpp:898:29 (libxul.so+0x3b9f59f) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #17 mozilla::net::CacheEntry::InvokeCallback(mozilla::net::CacheEntry::Callback&) /builds/worker/checkouts/gecko/netwerk/cache2/CacheEntry.cpp:812:5 (libxul.so+0x3ba405e) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #18 mozilla::net::CacheEntry::InvokeCallbacks(bool) /builds/worker/checkouts/gecko/netwerk/cache2/CacheEntry.cpp:675:30 (libxul.so+0x3ba3958) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #19 mozilla::net::CacheEntry::InvokeCallbacks() /builds/worker/checkouts/gecko/netwerk/cache2/CacheEntry.cpp:617:7 (libxul.so+0x3ba04db) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #20 Open /builds/worker/checkouts/gecko/netwerk/cache2/CacheEntry.cpp:343:3 (libxul.so+0x3b9ec39) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #21 mozilla::net::CacheEntry::AsyncOpen(nsICacheEntryOpenCallback*, unsigned int) /builds/worker/checkouts/gecko/netwerk/cache2/CacheEntry.cpp:318:8 (libxul.so+0x3b9ec39)
    #22 mozilla::net::CacheStorage::AsyncOpenURI(nsIURI*, nsTSubstring<char> const&, unsigned int, nsICacheEntryOpenCallback*) /builds/worker/checkouts/gecko/netwerk/cache2/CacheStorage.cpp:67:19 (libxul.so+0x3b9c473) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #23 mozilla::net::nsHttpChannel::OpenCacheEntryInternal(bool) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:4287:24 (libxul.so+0x3dc9f4a) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #24 mozilla::net::nsHttpChannel::OpenCacheEntry(bool) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:4135:10 (libxul.so+0x3db4ac5) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #25 mozilla::net::nsHttpChannel::ConnectOnTailUnblock() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1159:8 (libxul.so+0x3db4365) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #26 mozilla::net::nsHttpChannel::Connect() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:1147:10 (libxul.so+0x3db3473) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #27 operator()<mozilla::net::nsHttpChannel> /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:976:60 (libxul.so+0x3e216dd) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #28 std::_Function_handler<nsresult (mozilla::net::nsHttpChannel*), mozilla::net::nsHttpChannel::ContinueOnBeforeConnect(bool, nsresult, bool)::$_0>::_M_invoke(std::_Any_data const&, mozilla::net::nsHttpChannel*&&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:282:9 (libxul.so+0x3e216dd)
    #29 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x3dade17) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #30 mozilla::net::nsHttpChannel::CallOrWaitForResume(std::function<nsresult (mozilla::net::nsHttpChannel*)> const&) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:10038:10 (libxul.so+0x3dade17)
    #31 mozilla::net::nsHttpChannel::ContinueOnBeforeConnect(bool, nsresult, bool) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:976:10 (libxul.so+0x3db0058) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #32 mozilla::net::nsHttpChannel::MaybeUseHTTPSRRForUpgrade(bool, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x3db0823) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #33 mozilla::net::nsHttpChannel::OnBeforeConnect() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:732:10 (libxul.so+0x3daf0a8) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #34 operator()<mozilla::net::nsHttpChannel> /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:546:37 (libxul.so+0x3e20fed) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #35 std::_Function_handler<nsresult (mozilla::net::nsHttpChannel*), mozilla::net::nsHttpChannel::ContinuePrepareToConnect()::$_0>::_M_invoke(std::_Any_data const&, mozilla::net::nsHttpChannel*&&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:282:9 (libxul.so+0x3e20fed)
    #36 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x3dade17) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #37 mozilla::net::nsHttpChannel::CallOrWaitForResume(std::function<nsresult (mozilla::net::nsHttpChannel*)> const&) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:10038:10 (libxul.so+0x3dade17)
    #38 ContinuePrepareToConnect /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:545:10 (libxul.so+0x3dadc42) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #39 mozilla::net::nsHttpChannel::PrepareToConnect() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:538:10 (libxul.so+0x3dadc42)
    #40 operator() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:7129:46 (libxul.so+0x3e2492d) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #41 std::_Function_handler<nsresult (mozilla::net::nsHttpChannel*), mozilla::net::nsHttpChannel::BeginConnect()::$_0>::_M_invoke(std::_Any_data const&, mozilla::net::nsHttpChannel*&&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:282:9 (libxul.so+0x3e2492d)
    #42 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x3dade17) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #43 mozilla::net::nsHttpChannel::CallOrWaitForResume(std::function<nsresult (mozilla::net::nsHttpChannel*)> const&) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:10038:10 (libxul.so+0x3dade17)
    #44 mozilla::net::nsHttpChannel::BeginConnect() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:7128:8 (libxul.so+0x3dd75d0) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #45 mozilla::net::nsHttpChannel::OnProxyAvailable(nsICancelable*, nsIChannel*, nsIProxyInfo*, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:7483:10 (libxul.so+0x3ddb376) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #46 non-virtual thunk to mozilla::net::nsHttpChannel::OnProxyAvailable(nsICancelable*, nsIChannel*, nsIProxyInfo*, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x3ddb62c) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #47 mozilla::net::nsAsyncResolveRequest::DoCallback() /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:412:18 (libxul.so+0x386c4fb) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #48 Run /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:273:20 (libxul.so+0x3867e8b) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #49 operator() /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:255:14 (libxul.so+0x3867e8b)
    #50 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&&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:282:9 (libxul.so+0x3867e8b)
    #51 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x38219a3) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #52 mozilla::net::nsAsyncResolveRequest::AsyncApplyFilters::Finish() /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:606:10 (libxul.so+0x38219a3)
    #53 mozilla::net::nsAsyncResolveRequest::AsyncApplyFilters::ProcessNextFilter() /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:516:14 (libxul.so+0x3821593) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #54 mozilla::net::nsAsyncResolveRequest::AsyncApplyFilters::AsyncProcess(mozilla::net::nsAsyncResolveRequest*) /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:492:19 (libxul.so+0x3821186) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #55 mozilla::net::nsAsyncResolveRequest::ProcessLocally(mozilla::net::nsProtocolInfo&, nsIProxyInfo*, bool) /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:264:33 (libxul.so+0x3829843) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #56 mozilla::net::nsProtocolProxyService::AsyncResolveInternal(nsIChannel*, unsigned int, nsIProtocolProxyCallback*, nsICancelable**, bool, nsISerialEventTarget*) /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:1612:15 (libxul.so+0x38288f7) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #57 mozilla::net::nsProtocolProxyService::AsyncResolve2(nsIChannel*, unsigned int, nsIProtocolProxyCallback*, nsISerialEventTarget*, nsICancelable**) /builds/worker/checkouts/gecko/netwerk/base/nsProtocolProxyService.cpp:1630:10 (libxul.so+0x38298c2) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #58 mozilla::net::nsHttpChannel::ResolveProxy() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:3663:16 (libxul.so+0x3dc7894) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #59 mozilla::net::nsHttpChannel::MaybeResolveProxyAndBeginConnect() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:6779:25 (libxul.so+0x3dd5372) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #60 operator() /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:6747:20 (libxul.so+0x3e247f1) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #61 std::_Function_handler<void (), mozilla::net::nsHttpChannel::AsyncOpenFinal(mozilla::TimeStamp)::$_0>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:297:2 (libxul.so+0x3e247f1)
    #62 operator() /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:687:14 (libxul.so+0x3fc6514) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #63 Exec /builds/worker/checkouts/gecko/netwerk/url-classifier/AsyncUrlChannelClassifier.cpp:529:23 (libxul.so+0x3fc6514)
    #64 CompleteClassification /builds/worker/checkouts/gecko/netwerk/url-classifier/AsyncUrlChannelClassifier.cpp:753:20 (libxul.so+0x3fc6514)
    #65 operator() /builds/worker/checkouts/gecko/netwerk/url-classifier/AsyncUrlChannelClassifier.cpp:910:38 (libxul.so+0x3fc6514)
    #66 mozilla::detail::RunnableFunction<mozilla::net::AsyncUrlChannelClassifier::CheckChannel(nsIChannel*, std::function<void ()>&&)::$_0::operator()() const::'lambda'()>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:548:5 (libxul.so+0x3fc6514)
    #67 mozilla::RunnableTask::Run() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:618:16 (libxul.so+0x35f8582) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #68 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:945:26 (libxul.so+0x35ed043) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #69 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:768:15 (libxul.so+0x35eb886) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #70 mozilla::TaskController::ProcessPendingMTTask(bool) /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:554:36 (libxul.so+0x35ebbbf) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #71 operator() /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:268:37 (libxul.so+0x35fb3d4) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #72 mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.h:548:5 (libxul.so+0x35fb3d4)
    #73 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1159:16 (libxul.so+0x360e82d) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #74 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x3614d54) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #75 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:85:21 (libxul.so+0x4105dbe) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #76 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:369:10 (libxul.so+0x4084e58) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #77 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:362:3 (libxul.so+0x4084e58)
    #78 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:344:3 (libxul.so+0x4084e58)
    #79 nsBaseAppShell::Run() /builds/worker/checkouts/gecko/widget/nsBaseAppShell.cpp:148:27 (libxul.so+0x8964503) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #80 nsAppShell::Run() /builds/worker/checkouts/gecko/widget/gtk/nsAppShell.cpp:469:33 (libxul.so+0x8a5197c) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #81 nsAppStartup::Run() /builds/worker/checkouts/gecko/toolkit/components/startup/nsAppStartup.cpp:295:30 (libxul.so+0x980beb2) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #82 XREMain::XRE_mainRun() /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5791:22 (libxul.so+0x99478d2) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #83 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:6031:8 (libxul.so+0x994857b) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #84 XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/nsAppRunner.cpp:6104:21 (libxul.so+0x9948dcd) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #85 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:50:12 (libxul.so+0x99567f2) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #86 do_main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:232:22 (firefox-bin+0x1518c6) (BuildId: 2619ab97ee0e70d1c479b60936924a9d43ecbb8c)
    #87 main /builds/worker/checkouts/gecko/browser/app/nsBrowserApp.cpp:464:16 (firefox-bin+0x1518c6)

  Previous read of size 4 at 0x72480026efc4 by thread T7 (mutexes: write M2):
    #0 nsDNSRecord::GetCanonicalName(nsTSubstring<char>&) /builds/worker/checkouts/gecko/netwerk/dns/nsDNSService2.cpp:109:3 (libxul.so+0x3906080) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #1 mozilla::net::HTTPSRecordResolver::OnLookupComplete(nsICancelable*, nsIDNSRecord*, nsresult) /builds/worker/checkouts/gecko/netwerk/protocol/http/HTTPSRecordResolver.cpp:135:27 (libxul.so+0x3c84c9e) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #2 operator() /builds/worker/checkouts/gecko/netwerk/dns/DNSListenerProxy.cpp:29:59 (libxul.so+0x38f4cc3) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #3 mozilla::detail::RunnableFunction<mozilla::net::DNSListenerProxy::OnLookupComplete(nsICancelable*, nsIDNSRecord*, nsresult)::$_0>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:548:5 (libxul.so+0x38f4cc3)
    #4 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1153:16 (libxul.so+0x360ea9d) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #5 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x3614d54) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #6 mozilla::net::nsSocketTransportService::Run() /builds/worker/checkouts/gecko/netwerk/base/nsSocketTransportService2.cpp:1211:11 (libxul.so+0x384ae7c) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #7 non-virtual thunk to mozilla::net::nsSocketTransportService::Run() /builds/worker/checkouts/gecko/netwerk/base/nsSocketTransportService2.cpp (libxul.so+0x384ccf9) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #8 nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1153:16 (libxul.so+0x360ea9d) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #9 NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:480:10 (libxul.so+0x3614d54) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #10 mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:299:20 (libxul.so+0x410669e) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #11 RunInternal /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:369:10 (libxul.so+0x4084e58) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #12 RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:362:3 (libxul.so+0x4084e58)
    #13 MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:344:3 (libxul.so+0x4084e58)
    #14 nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:366:10 (libxul.so+0x360a653) (BuildId: 38be560f10d268347998c266b33e97aebf6d05a3)
    #15 _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:191:3 (libnspr4.so+0x4aef8) (BuildId: caeed87ada6c6114eb0e5c9ab33d708090bb4fb8)
...
Attached file tsan_log.txt
Assignee: nobody → kershaw
Severity: -- → S3
Priority: -- → P2
Whiteboard: [necko-triaged] [necko-priority-queue]

The data race happens on nsHostKey::flags.

Keywords: sec-moderate
Pushed by kjang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bcad03ce76b1 Make nsHostKey::flags Atomic, r=necko-reviewers,valentin
Group: network-core-security → core-security-release
Status: NEW → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → 135 Branch

The patch landed in nightly and beta is affected.
:kershaw, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox134 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(kershaw)
Attachment #9440201 - Flags: approval-mozilla-beta?

beta Uplift Approval Request

  • User impact if declined: Possible crash.
  • Code covered by automated testing: yes
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing: N/A
  • Risk associated with taking this patch: Low
  • Explanation of risk level: This patch only changes one variable to atomic.
  • String changes made/needed: N/A
  • Is Android affected?: yes
Flags: needinfo?(kershaw)
Attachment #9440201 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
QA Whiteboard: [post-critsmash-triage]
Flags: qe-verify-

Comment on attachment 9440201 [details]
Bug 1932783 - Make nsHostKey::flags Atomic, r=#necko

Approved for 128.6esr.

Attachment #9440201 - Flags: approval-mozilla-esr128+
Whiteboard: [necko-triaged] [necko-priority-queue] → [necko-triaged] [necko-priority-queue][adv-main134+r][adv-ESR128.6+r]
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: