Closed Bug 1654841 Opened 1 year ago Closed 7 months ago

ThreadSanitizer: data race in nsHttpChannel::OnTransportStatus

Categories

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

defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: bwc, Assigned: bwc)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

I have never seen this occur without a failure to restore the other stack. I suspect that we're already suppressing the other side of this race, but I am unsure where that might be. Does this ring a bell for anyone?

5:01.23 pid:233216 ==================
5:01.23 pid:233216 WARNING: ThreadSanitizer: data race (pid=233216)
5:01.23 pid:233216   Write of size 4 at 0x7b7400241340 by main thread:
5:01.23 pid:233216     #0 mozilla::net::nsHttpChannel::OnTransportStatus(nsITransport*, nsresult, long, long) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:8430:20 (libxul.so+0x673df57)
5:01.23 pid:233216     #1 non-virtual thunk to mozilla::net::nsHttpChannel::OnTransportStatus(nsITransport*, nsresult, long, long) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x673ed10)
5:01.23 pid:233216     #2 nsTransportStatusEvent::Run() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsTransportUtils.cpp:68:20 (libxul.so+0x60ff455)
5:01.23 pid:233216     #3 mozilla::RunnableTask::Run() /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:242:16 (libxul.so+0x5f0e37c)
5:01.23 pid:233216     #4 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:512:26 (libxul.so+0x5f089cd)
5:01.23 pid:233216     #5 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:371:15 (libxul.so+0x5f074f7)
5:01.23 pid:233216     #6 mozilla::TaskController::ProcessPendingMTTask(bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:168:36 (libxul.so+0x5f07794)
5:01.23 pid:233216     #7 operator() /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:83:37 (libxul.so+0x5f093f6)
5:01.23 pid:233216     #8 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_4>::Run() /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsThreadUtils.h:577:5 (libxul.so+0x5f093f6)
5:01.23 pid:233216     #9 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5f21bfd)
5:01.23 pid:233216     #10 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:513:10 (libxul.so+0x5f26a85)
5:01.23 pid:233216     #11 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x6a05e8a)
5:01.23 pid:233216     #12 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x693c9ec)
5:01.23 pid:233216     #13 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x693c9ec)
5:01.23 pid:233216     #14 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x693c9ec)
5:01.23 pid:233216     #15 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa45bd45)
5:01.23 pid:233216     #16 nsAppStartup::Run() /home/bcampen/checkouts/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:270:30 (libxul.so+0xc699514)
5:01.23 pid:233216     #17 XREMain::XRE_mainRun() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4776:22 (libxul.so+0xc7cdcc1)
5:01.23 pid:233216     #18 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4966:8 (libxul.so+0xc7ce7e3)
5:01.23 pid:233216     #19 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:5020:21 (libxul.so+0xc7ceb7a)
5:01.23 pid:233216     #20 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xc7dac37)
5:01.23 pid:233216     #21 do_main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:217:22 (firefox+0x111af3)
5:01.23 pid:233216     #22 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:331:16 (firefox+0x111af3)
5:01.23 pid:233216   Previous read of size 4 at 0x7b7400241340 by thread T20:
5:01.23 pid:233216     [failed to restore the stack]
5:01.23 pid:233216   Location is heap block of size 2160 at 0x7b7400240e00 allocated by main thread:
5:01.23 pid:233216     #0 malloc /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:650:5 (firefox+0x9e244)
5:01.23 pid:233216     #1 moz_xmalloc /home/bcampen/checkouts/mozilla-central/memory/mozalloc/mozalloc.cpp:52:15 (firefox+0x11318a)
5:01.23 pid:233216     #2 operator new /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/mozilla/cxxalloc.h:33:10 (libxul.so+0x65edeec)
5:01.23 pid:233216     #3 mozilla::net::nsHttpHandler::NewProxiedChannel(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpHandler.cpp:2188:19 (libxul.so+0x65edeec)
5:01.23 pid:233216     #4 mozilla::net::nsHttpsHandler::NewProxiedChannel(nsIURI*, nsIProxyInfo*, unsigned int, nsIURI*, nsILoadInfo*, nsIChannel**) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpHandler.h:858:3 (libxul.so+0x65f2b24)
5:01.23 pid:233216     #5 mozilla::net::nsIOService::NewChannelFromURIWithProxyFlagsInternal(nsIURI*, nsIURI*, unsigned int, nsILoadInfo*, nsIChannel**) /home/bcampen/checkouts/mozilla-central/netwerk/base/nsIOService.cpp:1135:15 (libxul.so+0x606de82)
5:01.23 pid:233216     #6 mozilla::net::nsIOService::NewChannelFromURIWithLoadInfo(nsIURI*, nsILoadInfo*, nsIChannel**) /home/bcampen/checkouts/mozilla-central/netwerk/base/nsIOService.cpp:1091:10 (libxul.so+0x606dc34)
5:01.23 pid:233216     #7 NS_NewChannelInternal(nsIChannel**, nsIURI*, nsILoadInfo*, mozilla::dom::PerformanceStorage*, nsILoadGroup*, nsIInterfaceRequestor*, unsigned int, nsIIOService*) /home/bcampen/checkouts/mozilla-central/netwerk/base/nsNetUtil.cpp:246:20 (libxul.so+0x608d84e)
5:01.23 pid:233216     #8 nsDocShell::CreateRealChannelForDocument(nsIChannel**, nsIURI*, nsILoadInfo*, nsIInterfaceRequestor*, unsigned int, nsTSubstring<char16_t> const&, nsIURI*) /home/bcampen/checkouts/mozilla-central/docshell/base/nsDocShell.cpp:9123:5 (libxul.so+0xc165819)
5:01.23 pid:233216     #9 nsDocShell::CreateAndConfigureRealChannelForLoadState(mozilla::dom::BrowsingContext*, nsDocShellLoadState*, mozilla::net::LoadInfo*, nsIInterfaceRequestor*, nsDocShell*, mozilla::OriginAttributes const&, unsigned int, unsigned int, nsresult&, nsIChannel**) /home/bcampen/checkouts/mozilla-central/docshell/base/nsDocShell.cpp:9242:9 (libxul.so+0xc165e0e)
5:01.23 pid:233216     #10 mozilla::net::DocumentLoadListener::Open(nsDocShellLoadState*, mozilla::net::LoadInfo*, unsigned int, unsigned int, mozilla::Maybe<unsigned long> const&, mozilla::TimeStamp const&, nsDOMNavigationTiming*, mozilla::Maybe<mozilla::dom::ClientInfo>&&, bool, bool, int, nsresult*) /home/bcampen/checkouts/mozilla-central/netwerk/ipc/DocumentLoadListener.cpp:464:8 (libxul.so+0x68087aa)
5:01.23 pid:233216     #11 mozilla::net::DocumentLoadListener::OpenDocument(nsDocShellLoadState*, unsigned int, mozilla::Maybe<unsigned long> const&, mozilla::TimeStamp const&, nsDOMNavigationTiming*, mozilla::Maybe<mozilla::dom::ClientInfo>&&, bool, mozilla::Maybe<bool>, mozilla::Maybe<bool>, int, nsresult*) /home/bcampen/checkouts/mozilla-central/netwerk/ipc/DocumentLoadListener.cpp:657:10 (libxul.so+0x6805a0c)
5:01.23 pid:233216     #12 mozilla::net::DocumentChannelParent::Init(mozilla::dom::CanonicalBrowsingContext*, mozilla::net::DocumentChannelCreationArgs const&) /home/bcampen/checkouts/mozilla-central/netwerk/ipc/DocumentChannelParent.cpp:62:40 (libxul.so+0x68050d8)
5:01.23 pid:233216     #13 mozilla::net::NeckoParent::RecvPDocumentChannelConstructor(mozilla::net::PDocumentChannelParent*, mozilla::dom::MaybeDiscarded<mozilla::dom::BrowsingContext> const&, mozilla::net::DocumentChannelCreationArgs const&) /home/bcampen/checkouts/mozilla-central/netwerk/ipc/NeckoParent.cpp:339:11 (libxul.so+0x6815cfc)
5:01.23 pid:233216     #14 mozilla::net::PNeckoParent::OnMessageReceived(IPC::Message const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/ipc/ipdl/PNeckoParent.cpp:2287:55 (libxul.so+0x6d24370)
5:01.23 pid:233216     #15 mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/ipc/ipdl/PContentParent.cpp:6581:32 (libxul.so+0x6b84ce4)
5:01.23 pid:233216     #16 mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessageChannel.cpp:2150:25 (libxul.so+0x6a01bf2)
5:01.23 pid:233216     #17 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessageChannel.cpp:2074:9 (libxul.so+0x69ffd0e)
5:01.23 pid:233216     #18 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessageChannel.cpp:1922:3 (libxul.so+0x6a00a00)
5:01.23 pid:233216     #19 mozilla::ipc::MessageChannel::MessageTask::Run() /home/bcampen/checkouts/mozilla-central/ipc/glue/MessageChannel.cpp:1953:13 (libxul.so+0x6a01169)
5:01.23 pid:233216     #20 mozilla::RunnableTask::Run() /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:242:16 (libxul.so+0x5f0e37c)
5:01.23 pid:233216     #21 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:512:26 (libxul.so+0x5f089cd)
5:01.23 pid:233216     #22 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:371:15 (libxul.so+0x5f074f7)
5:01.23 pid:233216     #23 mozilla::TaskController::ProcessPendingMTTask(bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:168:36 (libxul.so+0x5f07794)
5:01.23 pid:233216     #24 operator() /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:83:37 (libxul.so+0x5f093f6)
5:01.23 pid:233216     #25 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_4>::Run() /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsThreadUtils.h:577:5 (libxul.so+0x5f093f6)
5:01.23 pid:233216     #26 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5f21bfd)
5:01.23 pid:233216     #27 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:513:10 (libxul.so+0x5f26a85)
5:01.23 pid:233216     #28 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x6a05e8a)
5:01.23 pid:233216     #29 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x693c9ec)
5:01.23 pid:233216     #30 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x693c9ec)
5:01.23 pid:233216     #31 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x693c9ec)
5:01.23 pid:233216     #32 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa45bd45)
5:01.23 pid:233216     #33 nsAppStartup::Run() /home/bcampen/checkouts/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:270:30 (libxul.so+0xc699514)
5:01.23 pid:233216     #34 XREMain::XRE_mainRun() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4776:22 (libxul.so+0xc7cdcc1)
5:01.23 pid:233216     #35 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4966:8 (libxul.so+0xc7ce7e3)
5:01.23 pid:233216     #36 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:5020:21 (libxul.so+0xc7ceb7a)
5:01.24 pid:233216     #37 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xc7dac37)
5:01.24 pid:233216     #38 do_main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:217:22 (firefox+0x111af3)
5:01.24 pid:233216     #39 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:331:16 (firefox+0x111af3)
5:01.24 pid:233216   Thread T20 'Cache2 I/O' (tid=233257, running) created by main thread at:
5:01.24 pid:233216     #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (firefox+0x9fb2b)
5:01.24 pid:233216     #1 _PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:458:14 (libnspr4.so+0x47831)
5:01.24 pid:233216     #2 PR_CreateThread /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:533:12 (libnspr4.so+0x3be67)
5:01.24 pid:233216     #3 Init /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheIOThread.cpp:252:7 (libxul.so+0x6551e30)
5:01.24 pid:233216     #4 mozilla::net::CacheFileIOManager::InitInternal() /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheFileIOManager.cpp:1144:19 (libxul.so+0x6551e30)
5:01.24 pid:233216     #5 mozilla::net::CacheFileIOManager::Init() /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheFileIOManager.cpp:1132:24 (libxul.so+0x6551990)
5:01.24 pid:233216     #6 mozilla::net::CacheObserver::Observe(nsISupports*, char const*, char16_t const*) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheObserver.cpp:287:5 (libxul.so+0x65840c0)
5:01.24 pid:233216     #7 nsObserverList::NotifyObservers(nsISupports*, char const*, char16_t const*) /home/bcampen/checkouts/mozilla-central/xpcom/ds/nsObserverList.cpp:65:19 (libxul.so+0x5e74544)
5:01.24 pid:233216     #8 nsObserverService::NotifyObservers(nsISupports*, char const*, char16_t const*) /home/bcampen/checkouts/mozilla-central/xpcom/ds/nsObserverService.cpp:287:19 (libxul.so+0x5e823f8)
5:01.24 pid:233216     #9 nsXREDirProvider::DoStartup() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsXREDirProvider.cpp:944:13 (libxul.so+0xc7dde7b)
5:01.24 pid:233216     #10 XREMain::XRE_mainRun() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4556:16 (libxul.so+0xc7cd5ff)
5:01.24 pid:233216     #11 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4966:8 (libxul.so+0xc7ce7e3)
5:01.24 pid:233216     #12 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:5020:21 (libxul.so+0xc7ceb7a)
5:01.24 pid:233216     #13 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xc7dac37)
5:01.24 pid:233216     #14 do_main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:217:22 (firefox+0x111af3)
5:01.24 pid:233216     #15 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:331:16 (firefox+0x111af3)
5:01.24 pid:233216 SUMMARY: ThreadSanitizer: data race /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:8430:20 in mozilla::net::nsHttpChannel::OnTransportStatus(nsITransport*, nsresult, long, long)
5:01.24 pid:233216 ==================

Maybe this is related to bug 1614697? This is on nsHttpChannel.mResolvedByTRR, which is a bitfield.

See Also: → 1614697
Assignee: nobody → docfaraday
Severity: -- → S3
Priority: -- → P2

After days of re-running this after removing the suppressions from bug 1614697, I finally got a more complete stack. This seems to be at least related to bug 1614697. Is that enough to justify landing this patch?

2:28.53 pid:2713674 ==================
2:28.53 pid:2713674 WARNING: ThreadSanitizer: data race (pid=2713674)
2:28.53 pid:2713674   Write of size 4 at 0x7b740021cf40 by main thread:
2:28.53 pid:2713674     #0 mozilla::net::nsHttpChannel::OnTransportStatus(nsITransport*, nsresult, long, long) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:8420:20 (libxul.so+0x675dfc7)
2:28.53 pid:2713674     #1 non-virtual thunk to mozilla::net::nsHttpChannel::OnTransportStatus(nsITransport*, nsresult, long, long) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x675ed80)
2:28.53 pid:2713674     #2 nsTransportStatusEvent::Run() /home/bcampen/checkouts/mozilla-central/netwerk/base/nsTransportUtils.cpp:68:20 (libxul.so+0x611f245)
2:28.53 pid:2713674     #3 mozilla::RunnableTask::Run() /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:242:16 (libxul.so+0x5f2e15c)
2:28.53 pid:2713674     #4 mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:512:26 (libxul.so+0x5f287ad)
2:28.53 pid:2713674     #5 mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:371:15 (libxul.so+0x5f272d7)
2:28.53 pid:2713674     #6 mozilla::TaskController::ProcessPendingMTTask(bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:168:36 (libxul.so+0x5f27574)
2:28.53 pid:2713674     #7 operator() /home/bcampen/checkouts/mozilla-central/xpcom/threads/TaskController.cpp:83:37 (libxul.so+0x5f291d6)
2:28.53 pid:2713674     #8 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_4>::Run() /home/bcampen/checkouts/mozilla-central/objdir-ff-tsan/dist/include/nsThreadUtils.h:577:5 (libxul.so+0x5f291d6)
2:28.53 pid:2713674     #9 nsThread::ProcessNextEvent(bool, bool*) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThread.cpp:1234:14 (libxul.so+0x5f419dd)
2:28.53 pid:2713674     #10 NS_ProcessNextEvent(nsIThread*, bool) /home/bcampen/checkouts/mozilla-central/xpcom/threads/nsThreadUtils.cpp:513:10 (libxul.so+0x5f46865)
2:28.53 pid:2713674     #11 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/bcampen/checkouts/mozilla-central/ipc/glue/MessagePump.cpp:87:21 (libxul.so+0x6a25e1a)
2:28.53 pid:2713674     #12 RunInternal /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:334:10 (libxul.so+0x695c97c)
2:28.53 pid:2713674     #13 RunHandler /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:327:3 (libxul.so+0x695c97c)
2:28.53 pid:2713674     #14 MessageLoop::Run() /home/bcampen/checkouts/mozilla-central/ipc/chromium/src/base/message_loop.cc:309:3 (libxul.so+0x695c97c)
2:28.53 pid:2713674     #15 nsBaseAppShell::Run() /home/bcampen/checkouts/mozilla-central/widget/nsBaseAppShell.cpp:137:27 (libxul.so+0xa4824e5)
2:28.53 pid:2713674     #16 nsAppStartup::Run() /home/bcampen/checkouts/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:270:30 (libxul.so+0xc6c1a14)
2:28.53 pid:2713674     #17 XREMain::XRE_mainRun() /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4776:22 (libxul.so+0xc7f6211)
2:28.53 pid:2713674     #18 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:4966:8 (libxul.so+0xc7f6d33)
2:28.53 pid:2713674     #19 XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/nsAppRunner.cpp:5020:21 (libxul.so+0xc7f70ca)
2:28.53 pid:2713674     #20 mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/bcampen/checkouts/mozilla-central/toolkit/xre/Bootstrap.cpp:45:12 (libxul.so+0xc803187)
2:28.53 pid:2713674     #21 do_main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:217:22 (firefox+0x111af3)
2:28.53 pid:2713674     #22 main /home/bcampen/checkouts/mozilla-central/browser/app/nsBrowserApp.cpp:331:16 (firefox+0x111af3)
2:28.53 pid:2713674   Previous read of size 4 at 0x7b740021cf40 by thread T20 (mutexes: write M1010912379516604968):
2:28.53 pid:2713674     #0 mozilla::net::nsHttpChannel::OnCacheEntryCheck(nsICacheEntry*, nsIApplicationCache*, unsigned int*) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:4459:9 (libxul.so+0x6748109)
2:28.53 pid:2713674     #1 non-virtual thunk to mozilla::net::nsHttpChannel::OnCacheEntryCheck(nsICacheEntry*, nsIApplicationCache*, unsigned int*) /home/bcampen/checkouts/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp (libxul.so+0x6749e07)
2:28.53 pid:2713674     #2 mozilla::net::CacheEntry::InvokeCallback(mozilla::net::CacheEntry::Callback&) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheEntry.cpp:740:46 (libxul.so+0x654b025)
2:28.53 pid:2713674     #3 mozilla::net::CacheEntry::InvokeCallbacks(bool) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheEntry.cpp:667:30 (libxul.so+0x654a81e)
2:28.53 pid:2713674     #4 mozilla::net::CacheEntry::InvokeCallbacks() /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheEntry.cpp:609:7 (libxul.so+0x65476c8)
2:28.53 pid:2713674     #5 mozilla::net::CacheEntry::OnFileReady(nsresult, bool) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheEntry.cpp:497:3 (libxul.so+0x6549214)
2:28.53 pid:2713674     #6 non-virtual thunk to mozilla::net::CacheEntry::OnFileReady(nsresult, bool) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheEntry.cpp (libxul.so+0x654941d)
2:28.53 pid:2713674     #7 mozilla::net::CacheFile::OnMetadataRead(nsresult) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheFile.cpp:636:13 (libxul.so+0x6558b18)
2:28.53 pid:2713674     #8 non-virtual thunk to mozilla::net::CacheFile::OnMetadataRead(nsresult) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheFile.cpp (libxul.so+0x6559684)
2:28.53 pid:2713674     #9 mozilla::net::CacheFileMetadata::OnDataRead(mozilla::net::CacheFileHandle*, char*, nsresult) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheFileMetadata.cpp (libxul.so+0x658a702)
2:28.53 pid:2713674     #10 mozilla::net::ReadEvent::Run() /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheFileIOManager.cpp:700:16 (libxul.so+0x65aaabe)
2:28.53 pid:2713674     #11 mozilla::net::CacheIOThread::LoopOneLevel(unsigned int) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheIOThread.cpp:538:22 (libxul.so+0x6590e20)
2:28.53 pid:2713674     #12 mozilla::net::CacheIOThread::ThreadFunc() /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheIOThread.cpp:475:9 (libxul.so+0x6590700)
2:28.53 pid:2713674     #13 mozilla::net::CacheIOThread::ThreadFunc(void*) /home/bcampen/checkouts/mozilla-central/netwerk/cache2/CacheIOThread.cpp:416:11 (libxul.so+0x658fe5c)
2:28.53 pid:2713674     #14 _pt_root /home/bcampen/checkouts/mozilla-central/nsprpub/pr/src/pthreads/ptthread.c:201:5 (libnspr4.so+0x50be0)
Flags: needinfo?(choller)

I also needed to remove the suppression from bug 1607212; it is odd, it looks like that suppression was intended to be removed recently (see bug 1652300)?

Thanks for your patience with this one, Byron :) The race in comment 3 looks like something the Necko developers should be able to investigate.

Meanwhile, it'll be fine to suppress this based on both top frames. And indeed, it was likely the suppression from 1607212/1652300 that kept this from showing up properly, because the second stack has that frame. Since both bugs are now fixed, can you please remove that suppression as well?

I suggest doing a try run before landing to ensure that there isn't yet another race currently covered up by this suppression.

Flags: needinfo?(choller)

Honza, can you look into comment 3? That's yet another race that was previously covered by a suppression for a different bug. Thanks!

Flags: needinfo?(honzab.moz)

bwc, do you know the hg revision you've been running the comment 3 report on? The channel code has recently changed a lot, so the lines no longer match. Thanks.

Flags: needinfo?(honzab.moz) → needinfo?(docfaraday)

OK, I'll find the right changeset manually. Please record it next time. Thanks.

Flags: needinfo?(honzab.moz)
Flags: needinfo?(honzab.moz)
Blocks: tsan

Probably fixed in Bug 1664535.

Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → WORKSFORME
Type: task → defect
You need to log in before you can comment on or make changes to this bug.