############################ # Real races in Chromium { bug_23433 ThreadSanitizer:Race fun:*logging*SetMinLogLevel* } { bug_24419 ThreadSanitizer:Race fun:*BrowserProcessImpl*nspector*iles* } { bug_37496 ThreadSanitizer:Race ... fun:*browser_sync*SyncShareIntercept*Observe* } { bug_41314 ThreadSanitizer:Race ... fun:base::LaunchApp* fun:ChildProcessLauncher::Context::LaunchInternal* } { bug_46642a ThreadSanitizer:Race fun:*media*PipelineImpl*InitializeTask* } { bug_46642b ThreadSanitizer:Race fun:*media*PipelineImpl*GetCurrentTime* } { bug_57266a ThreadSanitizer:Race ... fun:*vp8*_* } { bug_57266b ThreadSanitizer:Race ... obj:*libffmpegsumo.* fun:ThreadSanitizerStartThread } { bug_64075a ThreadSanitizer:Race fun:disk_cache::EntryImpl::GetDataSize* fun:net::HttpCache::Transaction::* } { bug_64075b ThreadSanitizer:Race fun:disk_cache::EntryImpl::UpdateSize* ... fun:disk_cache::EntryImpl::WriteDataImpl* } { bug_66994a ThreadSanitizer:Race fun:HistoryURLProvider::Stop* ... fun:AutocompleteController::St* } { bug_66994b ThreadSanitizer:Race ... fun:HistoryURLProvider::ExecuteWithDB* } { bug_67957 ThreadSanitizer:Race fun:Replace_memcpy fun:memcpy fun:Serialize* fun:UserScriptMaster::ScriptReloader::RunScan* } { bug_72169a ThreadSanitizer:Race fun:base::Thread::ThreadMain* } { bug_72169b ThreadSanitizer:Race fun:base::Thread::message_loop* ... fun:*::InotifyReader::OnInotifyEvent* } { bug_72548 ThreadSanitizer:Race ... fun:JSC::Yarr::Interpreter::*Disjunction* fun:JSC::Yarr::Interpreter::interpret* fun:JSC::Yarr::interpret* } { bug_72913 ThreadSanitizer:Race ... fun:ObserverListBase* ... fun:sync_api::SyncManager::SyncInternal::* } { bug_82279 ThreadSanitizer:Race fun:ObserverListBase::Iterator::Iterator fun:syncable::BaseTransaction::NotifyTransactionChangingAndEnding } ############################ # Benign races in Chromium { bug_61179 [benign race on tracked_objects::Births] ThreadSanitizer:Race fun:tracked_objects::Births::*Birth* } { bug_62694 [benign races in Histogram in CookieMonster] ThreadSanitizer:Race ... fun:base::Histogram::* fun:net::CookieMonster::* } { bug_64185a [probably-benign races in Histogram in skia::ImageOperations] ThreadSanitizer:Race ... fun:base::Histogram::* fun:skia::ImageOperations::* } { bug_64185b [probably-benign races in Histogram in skia::ImageOperations] ThreadSanitizer:Race ... fun:base::Histogram::* fun:HistogramSynchronizer::DeserializeHistogramList* } { bug_71634 ThreadSanitizer:Race fun:gdk_x_error ... fun:ui::GetWindowGeometry* } ############################ # Real races in third_party { bug_23244 (libevent) ThreadSanitizer:Race fun:event_* fun:event_* } { bug_28396 (libevent) (1) ThreadSanitizer:Race fun:detect_monotonic fun:event_base_new } { bug_28396 (libevent) (2) ThreadSanitizer:Race fun:gettime fun:event_base_loop } { bug_28765 (tcmalloc) ThreadSanitizer:Race ... fun:*tcmalloc*ThreadCache*DeleteCache* } { bug_40244 ThreadSanitizer:Race fun:*WebDataService*WebDataRequest*Cancel* fun:*WebDataService* } { bug_53192 ThreadSanitizer:UnlockNonLocked fun:pthread_mutex_unlock fun:talk_base::CriticalSection::Leave* fun:talk_base::CritScope::~CritScope* fun:talk_base::PosixSignalDeliveryDispatcher::ClearOwner* fun:talk_base::PhysicalSocketServer::~PhysicalSocketServer* fun:scoped_ptr*::~scoped_ptr* fun:talk_base::MessageQueue::~MessageQueue* fun:talk_base::Thread::~Thread* fun:talk_base::ThreadManager::UnwrapCurrentThread* fun:talk_base::ThreadManager::~ThreadManager* fun:__tcf_0 fun:exit } { bug_70938 ThreadSanitizer:Race ... obj:*libdbus* } { Nvidia GL driver destroys an invalid lock ThreadSanitizer:InvalidLock fun:pthread_mutex_destroy obj:*nvidia*/libGL.so.* } ############################ # Data races in tests { bug_30582 ThreadSanitizer:Race fun:*LongCallbackD* fun:*WorkerThreadTickerTest_LongCallback_Test*TestBody* } { bug_61731 ThreadSanitizer:Race fun:*Log* ... fun:*Worker* ... obj:*ipc_tests } { bug_68481 [test-only race on bool] ThreadSanitizer:Race fun:tracked_objects::ThreadData::StartTracking* fun:tracked_objects::TrackedObjectsTest_MinimalStartupShutdown_Test::TestBody* } # TODO(timurrrr): bug item { Data race on bool in AssertReporter [test-only] ThreadSanitizer:Race ... fun:*AssertReporter*warn* } # TODO(timurrrr): bug item { Data race on WatchdogCounter [test-only] ThreadSanitizer:Race ... fun:*WatchdogCounter*larm* } # TODO(timurrrr): bug item { Data race on counter in WorkQueue [test-only] ThreadSanitizer:Race ... fun:*WorkQueue* } # TODO(timurrrr): bug item { Data race on vfptr in base/watchdog_unittest ThreadSanitizer:Race ... fun:*WatchdogTest_*arm*Test_Test*TestBody* } # TODO(timurrrr): bug item { Data race on vfptr in base/thread_unittest ThreadSanitizer:Race ... fun:*ThreadTest_SleepInsideInit*TestBody* } # TODO(timurrrr): bug item { Data race on bool in chrome/browser/net/url_fetcher_unittest (1) ThreadSanitizer:Race fun:*URLFetcherCancelTest*TestContextReleased* } { Data race on bool in chrome/browser/net/url_fetcher_unittest (2) ThreadSanitizer:Race fun:*CancelTestURLRequestContext*CancelTestURLRequestContext* } { ThreadSanitizer sanity test (ToolsSanityTest.DataRace). ThreadSanitizer:Race fun:*TOOLS_SANITY_TEST_CONCURRENT_THREAD::ThreadMain } { Benign race (or even a false positive) on atomics in ThreadCollisionWarner ThreadSanitizer:Race fun:base::subtle::NoBarrier_Store fun:base::ThreadCollisionWarner::Leave } ############################ # Benign races in ICU { Two writes, same value (ICU gGlobalMutex, gMutexesInUse) ThreadSanitizer:Race ... fun:umtx_init_46 } { Two writes, same value (ICU gHeapInUse) ThreadSanitizer:Race fun:uprv_malloc_46 } { Two writes, same value (ICU gLibCleanupFunctions[UCLN_UPLUG]) ThreadSanitizer:Race fun:ucln_registerCleanup_46 fun:uplug_init_46 fun:u_init_46 } # Reading a pointer to a mutex being initialized in a concurrent thread. { A benign race in umtx_lock_46 ThreadSanitizer:Race fun:umtx_lock_46 } ############################ # Benign race in SQLLite { Two writes, same value (SQLLite pthreadMutexAlloc) ThreadSanitizer:Race ... fun:pthreadMutexAlloc fun:sqlite3MutexAlloc } { Two writes, same value (under sqlite3Malloc) ThreadSanitizer:Race ... fun:sqlite3Malloc* } { Two writes, same value (sqlite3_initialize) ThreadSanitizer:Race fun:sqlite3_initialize fun:openDatabase } ############################ # Races in V8 # http://code.google.com/p/v8/issues/detail?id=361 { Race on Locker::active_ in v8 ThreadSanitizer:Race fun:v8::Locker::* } ############################ # Benign races in libc # A benign race inside the implementation of internal libc mutex { Benign races in __lll_*lock_*_private ThreadSanitizer:Race fun:__lll_*lock_*_private } # Benign race below thread-safe time-conversion functions { fun:__tz* ThreadSanitizer:Race fun:__tz* } # Benign race below thread-safe time-conversion functions { fun:tzset* ThreadSanitizer:Race ... fun:tzset* } # Benign race in thread-safe function { fun:mkstemp* ThreadSanitizer:Race ... fun:mkstemp* } # We already ignore memory accesses inside ld # but we also need to ignore accesses below it. { fun:_dl_close ThreadSanitizer:Race ... fun:_dl_close } # fprintf is thread-safe. The benign races happen on the internal lock. { Benign race below fprintf (1) ThreadSanitizer:Race ... fun:buffered_vfprintf ... fun:fprintf } { Benign race below fprintf (2) ThreadSanitizer:Race fun:new_do_write fun:vfprintf } { fun:timegm ThreadSanitizer:Race ... fun:timegm } { fun:mktime ThreadSanitizer:Race ... fun:mktime } { Benign race in nss (PR_EnterMonitor) ThreadSanitizer:Race fun:PR_EnterMonitor } ############################ # TSan false positives { tsanbug_62a ThreadSanitizer:Race fun:__memset_sse2 } { tsanbug_62b ThreadSanitizer:Race fun:__GI_memcpy } { bug_70085a ThreadSanitizer:Race fun:WebCore::ResourceResponseBase::~ResourceResponseBase* fun:WebCore::ResourceResponse::~ResourceResponse* ... fun:WebCore::DocumentLoader::~DocumentLoader* fun:WebKit::WebDataSourceImpl::~WebDataSourceImpl* } { bug_70085b ThreadSanitizer:Race ... fun:WTF::ThreadSafeRefCounted*::deref* } { bug_70085c ThreadSanitizer:Race fun:WebCore::WorkerScriptController::forbidExecution* fun:WebCore::WorkerThread::stop* fun:WebKit::WebWorkerBase::stopWorkerThread* fun:WebKit::WebWorkerImpl::terminateWorkerContext* fun:WebWorkerStub::OnTerminateWorkerContext* }