Got this on an unrelated try job:
https://logs.chromium.org/v/?s=chromium%2Fbuildbucket%2Fcr-buildbucket.appspot.com%2F8942382225970833872%2F%2B%2Fsteps%2Funit_tests__with_patch_%2F0%2Flogs%2FImageWriterWriteFromUrlOperationTest.SelectTargetWithExtension%2F0
[ RUN ] ImageWriterWriteFromUrlOperationTest.SelectTargetWithExtension
==================
WARNING: ThreadSanitizer: data race (pid=17393)
Write of size 8 at 0x0000131e4e28 by thread T20:
#0 net::NetworkChangeNotifier::NetworkChangeNotifier(net::NetworkChangeNotifier::NetworkChangeCalculatorParams const&) net/base/network_change_notifier.cc:673:29 (unit_tests+0x922983c)
#1 net::NetworkChangeNotifierLinux::NetworkChangeNotifierLinux(std::__1::unordered_set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) net/base/network_change_notifier_linux.cc:100:7 (unit_tests+0x923332a)
#2 net::NetworkChangeNotifier::Create() net/base/network_change_notifier.cc:216:14 (unit_tests+0x9225765)
#3 CreateNetworkChangeNotifierIfNeeded services/network/network_service.cc:65:29 (unit_tests+0xc24a08a)
#4 network::NetworkService::NetworkService(std::__1::unique_ptr<service_manager::BinderRegistryWithArgs<>, std::__1::default_delete<service_manager::BinderRegistryWithArgs<> > >, mojo::InterfaceRequest<network::mojom::NetworkService>, net::NetLog*) services/network/network_service.cc:128 (unit_tests+0xc24a08a)
#5 content::GetNetworkServiceImpl() content/browser/network_service_instance.cc:72:29 (unit_tests+0x6bbdeff)
#6 content::StoragePartitionImpl::NetworkContextOwner::Initialize(mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter>) content/browser/storage_partition_impl.cc:244:9 (unit_tests+0x6ecd5c8)
#7 Invoke<void (content::StoragePartitionImpl::NetworkContextOwner::*)(mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter>), content::StoragePartitionImpl::NetworkContextOwner *, mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter> > base/bind_internal.h:507:12 (unit_tests+0x6ed4433)
#8 MakeItSo<void (content::StoragePartitionImpl::NetworkContextOwner::*)(mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter>), content::StoragePartitionImpl::NetworkContextOwner *, mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter> > base/bind_internal.h:607 (unit_tests+0x6ed4433)
#9 RunImpl<void (content::StoragePartitionImpl::NetworkContextOwner::*)(mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter>), std::__1::tuple<base::internal::UnretainedWrapper<content::StoragePartitionImpl::NetworkContextOwner>, mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter> >, 0, 1, 2> base/bind_internal.h:680 (unit_tests+0x6ed4433)
#10 base::internal::Invoker<base::internal::BindState<void (content::StoragePartitionImpl::NetworkContextOwner::*)(mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter>), base::internal::UnretainedWrapper<content::StoragePartitionImpl::NetworkContextOwner>, mojo::InterfaceRequest<network::mojom::NetworkContext>, scoped_refptr<net::URLRequestContextGetter> >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:649 (unit_tests+0x6ed4433)
#11 Run base/callback.h:99:12 (unit_tests+0x9f16578)
#12 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:101 (unit_tests+0x9f16578)
#13 base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) base/message_loop/incoming_task_queue.cc:129:19 (unit_tests+0x9f5227e)
#14 base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:319:25 (unit_tests+0x9f4f653)
#15 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:329:5 (unit_tests+0x9f4fb3c)
#16 base::MessageLoop::DoWork() base/message_loop/message_loop.cc:373:16 (unit_tests+0x9f4fed5)
#17 base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_libevent.cc:210:31 (unit_tests+0xa05f7b4)
#18 base::MessageLoop::Run(bool) base/message_loop/message_loop.cc:271:12 (unit_tests+0x9f4ed47)
#19 non-virtual thunk to base::MessageLoop::Run(bool) base/message_loop/message_loop.cc (unit_tests+0x9f4ee34)
#20 base::RunLoop::Run() base/run_loop.cc:102:14 (unit_tests+0x9f9a5cf)
#21 base::Thread::Run(base::RunLoop*) base/threading/thread.cc:255:13 (unit_tests+0x9ff262b)
#22 content::BrowserProcessSubThread::IOThreadRun(base::RunLoop*) content/browser/browser_process_sub_thread.cc:178:11 (unit_tests+0x6768a16)
#23 content::BrowserProcessSubThread::Run(base::RunLoop*) content/browser/browser_process_sub_thread.cc:128:7 (unit_tests+0x6768923)
#24 base::Thread::ThreadMain() base/threading/thread.cc:337:3 (unit_tests+0x9ff2c0b)
#25 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:76:13 (unit_tests+0xa0582f8)
Previous read of size 8 at 0x0000131e4e28 by main thread:
#0 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(net::NetworkChangeNotifier::NetworkChangeObserver*) net/base/network_change_notifier.cc:581:7 (unit_tests+0x9228686)
#1 MutableProfileOAuth2TokenServiceDelegate::~MutableProfileOAuth2TokenServiceDelegate() chrome/browser/signin/mutable_profile_oauth2_token_service_delegate.cc:368:3 (unit_tests+0xa6e3d7f)
#2 MutableProfileOAuth2TokenServiceDelegate::~MutableProfileOAuth2TokenServiceDelegate() chrome/browser/signin/mutable_profile_oauth2_token_service_delegate.cc:365:49 (unit_tests+0xa6e3f79)
#3 operator() buildtools/third_party/libc++/trunk/include/memory:2321:5 (unit_tests+0x511be18)
#4 reset buildtools/third_party/libc++/trunk/include/memory:2634 (unit_tests+0x511be18)
#5 ~unique_ptr buildtools/third_party/libc++/trunk/include/memory:2588 (unit_tests+0x511be18)
#6 OAuth2TokenService::~OAuth2TokenService() google_apis/gaia/oauth2_token_service.cc:398 (unit_tests+0x511be18)
#7 ~ProfileOAuth2TokenService components/signin/core/browser/profile_oauth2_token_service.cc:23:1 (unit_tests+0xc61f031)
#8 ~ProfileOAuth2TokenService components/signin/core/browser/profile_oauth2_token_service.cc:21 (unit_tests+0xc61f031)
#9 non-virtual thunk to ProfileOAuth2TokenService::~ProfileOAuth2TokenService() components/signin/core/browser/profile_oauth2_token_service.cc (unit_tests+0xc61f031)
#10 KeyedServiceFactory::Disassociate(base::SupportsUserData*) components/keyed_service/core/keyed_service_factory.cc:105:5 (unit_tests+0xc5ec3cd)
#11 KeyedServiceFactory::ContextDestroyed(base::SupportsUserData*) components/keyed_service/core/keyed_service_factory.cc:117:3 (unit_tests+0xc5ec5a3)
#12 BrowserContextKeyedServiceFactory::BrowserContextDestroyed(content::BrowserContext*) components/keyed_service/content/browser_context_keyed_service_factory.cc:89:24 (unit_tests+0xce16a00)
#13 BrowserContextKeyedServiceFactory::ContextDestroyed(base::SupportsUserData*) components/keyed_service/content/browser_context_keyed_service_factory.cc:123:3 (unit_tests+0xce16bac)
#14 DependencyManager::DestroyContextServices(base::SupportsUserData*) components/keyed_service/core/dependency_manager.cc:100:14 (unit_tests+0xc5e889e)
#15 BrowserContextDependencyManager::DestroyBrowserContextServices(content::BrowserContext*) components/keyed_service/content/browser_context_dependency_manager.cc:52:22 (unit_tests+0xce159d0)
#16 TestingProfile::~TestingProfile() chrome/test/base/testing_profile.cc:536:40 (unit_tests+0x8fe44ff)
#17 ~ImageWriterWriteFromUrlOperationTest chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc:91:7 (unit_tests+0x42e6393)
#18 extensions::image_writer::ImageWriterWriteFromUrlOperationTest_SelectTargetWithExtension_Test::~ImageWriterWriteFromUrlOperationTest_SelectTargetWithExtension_Test() chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc:145 (unit_tests+0x42e6393)
#19 DeleteSelf_ third_party/googletest/src/googletest/include/gtest/gtest.h:479:24 (unit_tests+0x535e905)
#20 HandleExceptionsInMethodIfSupported<testing::Test, void> third_party/googletest/src/googletest/src/gtest.cc:2475 (unit_tests+0x535e905)
#21 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2672 (unit_tests+0x535e905)
#22 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28 (unit_tests+0x535f0d6)
#23 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43 (unit_tests+0x536f676)
#24 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x536ef5a)
#25 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46 (unit_tests+0x8ffa5b5)
#26 base::TestSuite::Run() base/test/test_suite.cc:275 (unit_tests+0x8ffa5b5)
#27 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:54:23 (unit_tests+0x914cc81)
#28 Invoke<int (content::UnitTestTestSuite::*)(), content::UnitTestTestSuite *> base/bind_internal.h:507:12 (unit_tests+0x8feb218)
#29 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:607 (unit_tests+0x8feb218)
#30 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:680 (unit_tests+0x8feb218)
#31 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:662 (unit_tests+0x8feb218)
#32 Run base/callback.h:99:12 (unit_tests+0x8ffdb98)
#33 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:225 (unit_tests+0x8ffdb98)
#34 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:576:10 (unit_tests+0x8ffd9a7)
#35 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x8feb140)
Location is global 'net::(anonymous namespace)::g_network_change_notifier' of size 8 at 0x0000131e4e28 (unit_tests+0x0000131e4e28)
Thread T20 'Chrome_IOThread' (tid=17550, running) created by main thread at:
#0 pthread_create /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:965:3 (unit_tests+0x2c6c755)
#1 base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:115:13 (unit_tests+0xa057da6)
#2 base::PlatformThread::CreateWithPriority(unsigned long, base::PlatformThread::Delegate*, base::PlatformThreadHandle*, base::ThreadPriority) base/threading/platform_thread_posix.cc:200:10 (unit_tests+0xa057c65)
#3 base::Thread::StartWithOptions(base::Thread::Options const&) base/threading/thread.cc:112:15 (unit_tests+0x9ff1c05)
#4 StartIOThreadUnregistered content/public/test/test_browser_thread.cc:73:3 (unit_tests+0x9145109)
#5 content::TestBrowserThread::StartIOThread() content/public/test/test_browser_thread.cc:66 (unit_tests+0x9145109)
#6 content::TestBrowserThreadBundle::CreateBrowserThreads() content/public/test/test_browser_thread_bundle.cc:117:17 (unit_tests+0x91459a5)
#7 content::TestBrowserThreadBundle::Init() content/public/test/test_browser_thread_bundle.cc:109:5 (unit_tests+0x914559a)
#8 content::TestBrowserThreadBundle::TestBrowserThreadBundle(int) content/public/test/test_browser_thread_bundle.cc:28:3 (unit_tests+0x914531c)
#9 extensions::image_writer::ImageWriterUnitTestBase::ImageWriterUnitTestBase() chrome/browser/extensions/api/image_writer_private/test_utils.cc:318:7 (unit_tests+0x42d9cb0)
#10 ImageWriterWriteFromUrlOperationTest chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc:93:3 (unit_tests+0x42e6d34)
#11 ImageWriterWriteFromUrlOperationTest_SelectTargetWithExtension_Test chrome/browser/extensions/api/image_writer_private/write_from_url_operation_unittest.cc:145 (unit_tests+0x42e6d34)
#12 testing::internal::TestFactoryImpl<extensions::image_writer::ImageWriterWriteFromUrlOperationTest_SelectTargetWithExtension_Test>::CreateTest() third_party/googletest/src/googletest/include/gtest/internal/gtest-internal.h:466 (unit_tests+0x42e6d34)
#13 testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x535e78e)
#14 testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28 (unit_tests+0x535f0d6)
#15 testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43 (unit_tests+0x536f676)
#16 testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc (unit_tests+0x536ef5a)
#17 RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46 (unit_tests+0x8ffa5b5)
#18 base::TestSuite::Run() base/test/test_suite.cc:275 (unit_tests+0x8ffa5b5)
#19 content::UnitTestTestSuite::Run() content/public/test/unittest_test_suite.cc:54:23 (unit_tests+0x914cc81)
#20 Invoke<int (content::UnitTestTestSuite::*)(), content::UnitTestTestSuite *> base/bind_internal.h:507:12 (unit_tests+0x8feb218)
#21 MakeItSo<int (content::UnitTestTestSuite::*const &)(), content::UnitTestTestSuite *> base/bind_internal.h:607 (unit_tests+0x8feb218)
#22 RunImpl<int (content::UnitTestTestSuite::*const &)(), const std::__1::tuple<base::internal::UnretainedWrapper<content::UnitTestTestSuite> > &, 0> base/bind_internal.h:680 (unit_tests+0x8feb218)
#23 base::internal::Invoker<base::internal::BindState<int (content::UnitTestTestSuite::*)(), base::internal::UnretainedWrapper<content::UnitTestTestSuite> >, int ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:662 (unit_tests+0x8feb218)
#24 Run base/callback.h:99:12 (unit_tests+0x8ffdb98)
#25 base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:225 (unit_tests+0x8ffdb98)
#26 base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:576:10 (unit_tests+0x8ffd9a7)
#27 main chrome/test/base/run_all_unittests.cc:30:10 (unit_tests+0x8feb140)
SUMMARY: ThreadSanitizer: data race net/base/network_change_notifier.cc:673:29 in net::NetworkChangeNotifier::NetworkChangeNotifier(net::NetworkChangeNotifier::NetworkChangeCalculatorParams const&)
==================
(see also bug 807386)
Comment 1 by rdevlin....@chromium.org
, Jun 29 2018