blob: 357038a14aa9a94c49147713b3341329b3bbc950 [file] [log] [blame]
# There are a few kinds of suppressions in this file.
# 1. third party stuff we have no control over
#
# 2. intentional unit test errors, or stuff that is somehow a false positive
# in our own code, or stuff that is so trivial it's not worth fixing
#
# 3. Suppressions for real chromium bugs that are not yet fixed.
# These should all be in chromium's bug tracking system (but a few aren't yet).
# Periodically we should sweep this file and the bug tracker clean by
# running overnight and removing outdated bugs/suppressions.
#-----------------------------------------------------------------------
# 1. third party stuff we have no control over
############################
# 1.1 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 races below thread-safe time-conversion functions
{
fun:__tz*
ThreadSanitizer:Race
fun:__tz*
}
{
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
}
# (Looks same as the one above)
{
bug_84244
ThreadSanitizer:Race
fun:PR_ExitMonitor
...
fun:nss*
}
############################
# 1.2 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
}
############################
# 1.3 Benign races in SQLLite
# TODO(timurrr|oshima): following four suppressions could be obsolete.
{
Two writes, same value (SQLLite pthreadMutexAlloc)
ThreadSanitizer:Race
...
fun:pthreadMutexAlloc
fun:sqlite3MutexAlloc
}
{
Two writes, same value 2 (SQLLite pthreadMutexAlloc)
ThreadSanitizer:Race
fun:pthreadMutexAlloc
...
fun:openDatabase
}
{
Two writes, same value (under sqlite3Malloc)
ThreadSanitizer:Race
...
fun:sqlite3Malloc*
}
{
Two writes, same value (sqlite3_initialize)
ThreadSanitizer:Race
fun:sqlite3_initialize
fun:openDatabase
}
{
bug_84094_a (Could be benign. See bug for details)
ThreadSanitizer:Race
...
fun:pcache1Fetch
fun:sqlite3PcacheFetch
}
{
bug_84094_b (Could be benign. See bug for details)
ThreadSanitizer:Race
fun:sqlite3StatusSet
fun:pcache1Alloc
}
{
bug_84094_c (Could be benign. See bug for details)
ThreadSanitizer:Race
...
fun:pcache1Unpin
fun:pcacheUnpin
fun:sqlite3PcacheMakeClean
fun:sqlite3PcacheCleanAll
}
############################
# 1.4 Real races in third_party
{
Nvidia GL driver destroys an invalid lock
ThreadSanitizer:InvalidLock
fun:pthread_mutex_destroy
obj:*nvidia*/libGL.so.*
}
# http://code.google.com/p/v8/issues/detail?id=361
{
V8: race on Locker::active_
ThreadSanitizer:Race
fun:v8::Locker::*
}
{
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_70938
ThreadSanitizer:Race
...
obj:*libdbus*
}
{
bug_84467 (Could be benign. See bug for details)
ThreadSanitizer:Race
fun:unixTempFileDir
}
{
bug_84726_a
ThreadSanitizer:Race
fun:qsort_r
fun:qsort
fun:_xdg_mime_alias_read_from_file
}
{
bug_84726_b
ThreadSanitizer:Race
fun:qsort_r
fun:qsort
fun:_cairo_bentley_ottmann_tessellate_polygon
}
# 2. intentional unit test errors, or stuff that is somehow a false positive
############################
# 2.1 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::ShutdownSingleThreadedCleanup
fun:tracked_objects::TrackedObjectsTest_MinimalStartupShutdown_Test::*
}
# 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 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
}
{
bug_100026
ThreadSanitizer:Race
...
fun:std::*
...
fun:logging::LogMessage::*LogMessage
fun:base::PlatformThread::SetThreadPriority
fun:base::SimpleThread::SetThreadPriority
fun:AudioDevice::Run
}
############################
# 2.2 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_104776 Benign race to initialize pointer with the same value again.
ThreadSanitizer:Race
fun:base::StatisticsRecorder::FindHistogram
fun:base::*Histogram::FactoryGet
}
# 3. Suppressions for real chromium bugs that are not yet fixed.
############################
# 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_57266c
ThreadSanitizer:Race
fun:thread_encoding_proc
}
{
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_67957
ThreadSanitizer:Race
fun:Replace_memcpy
fun:memcpy
fun:Serialize
fun:UserScriptMaster::ScriptReloader::RunLoad
}
{
bug_72548
ThreadSanitizer:Race
...
fun:JSC::Yarr::Interpreter::*Disjunction*
fun:JSC::Yarr::Interpreter::interpret*
fun:JSC::Yarr::interpret*
}
{
bug_86916
ThreadSanitizer:Race
fun:loopfilter_frame
fun:loopfilter_thread
}
{
bug_87747
ThreadSanitizer:Race
fun:base::MessagePumpLibevent::FileDescriptorWatcher::~FileDescriptorWatcher
fun:ProcessSingleton::LinuxWatcher::SocketReader::~SocketReader
fun:ProcessSingleton::LinuxWatcher::RemoveSocketReader
fun:ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK
fun:ProcessSingleton::LinuxWatcher::HandleMessage
}
{
bug_89141
ThreadSanitizer:Race
fun:base::Thread::message_loop
fun:content::BrowserThread::IsMessageLoopValid
fun:ThreadWatcherList::StartWatching
fun:ThreadWatcherList::InitializeAndStartWatching
}
{
bug_93932_a
ThreadSanitizer:Race
...
fun:avcodec_close
...
fun:media::FFmpegVideoDecoder::*
...
fun:media::FFmpegVideoDecode*Test::*
}
{
bug_93932_b
ThreadSanitizer:Race
...
fun:ff_thread_decode_frame
fun:avcodec_decode_video2
...
fun:media::FFmpegVideoDecoder::Decode*
}
{
bug_93932_c
ThreadSanitizer:Race
fun:Replace_memcpy
fun:memcpy
fun:media::CopyPlane
...
fun:media::FFmpegVideoDecoder::Decode*
}
{
bug_93932_d
ThreadSanitizer:Race
fun:frame_worker_thread
}
{
bug_93932_e
ThreadSanitizer:Race
fun:Replace_memcpy
fun:memcpy
fun:ff_thread_decode_frame
...
fun:media::FFmpegVideoDecoder::Decode*
}
{
bug_95509
ThreadSanitizer:Race
fun:base::SyncSocket::Close
fun:AudioRendererImpl::OnStop
fun:media::AudioRendererBase::Stop
fun:media::CompositeFilter::CallFilter
fun:media::CompositeFilter::SerialCallback
}
{
bug_100020
ThreadSanitizer:Race
fun:linked_ptr_internal::join
fun:linked_ptr::copy
...
fun:HostContentSettingsMap::GetDefaultContentSetting
}
{
bug_102327_a
ThreadSanitizer:Race
fun:tracked_objects::ThreadData::Initialize
fun:tracked_objects::ThreadData::InitializeThreadContext
fun:base::Thread::ThreadMain
fun:base::::ThreadFunc
}
{
bug_102327_b
ThreadSanitizer:Race
...
fun:tracked_objects::ThreadData::TallyABirthIfActive
fun:base::PosixDynamicThreadPool::PendingTask::PendingTask
fun:base::PosixDynamicThreadPool::WaitForTask
fun:base::::WorkerThread::ThreadMain
fun:base::::ThreadFunc
}
{
bug_102327_c
ThreadSanitizer:Race
fun:tracked_objects::ThreadData::tracking_status
}
{
bug_103711a
ThreadSanitizer:Race
fun:webrtc::Trace::SetLevelFilter
}
{
bug_103711b
ThreadSanitizer:Race
fun:webrtc::TraceImpl::TraceCheck
}
{
bug_103711c
ThreadSanitizer:Race
fun:webrtc::ThreadPosix::*
}
{
bug_103711d
ThreadSanitizer:Race
fun:webrtc::FileWrapper*::*
...
fun:webrtc::TraceImpl::StaticInstance
fun:webrtc::Trace::ReturnTrace
fun:webrtc::voe::SharedData::~SharedData
fun:webrtc::VoiceEngineImpl::~VoiceEngineImpl
...
fun:webrtc::VoiceEngine::Delete
fun:WebRTCAutoDelete::reset
...
fun:WebRTCAudioDeviceTest_Construct_Test::TestBody
}
{
bug_103711e
ThreadSanitizer:Race
...
fun:WebRTCAudioDeviceTest::OnMessageReceived
...
fun:IPC::Channel::ChannelImpl::ProcessIncomingMessages
fun:IPC::Channel::ChannelImpl::OnFileCanReadWithoutBlocking
fun:base::MessagePumpLibevent::FileDescriptorWatcher::OnFileCanReadWithoutBlocking
fun:base::MessagePumpLibevent::OnLibeventNotification
fun:event_process_active
fun:event_base_loop
}
{
bug_103711f
ThreadSanitizer:Race
fun:webrtc::TracePosix::AddTime
fun:webrtc::TraceImpl::AddImpl
fun:webrtc::Trace::Add
fun:webrtc::ThreadPosix::Run
}
{
bug_103711g
ThreadSanitizer:Race
fun:WebRTCAudioDeviceTest::SetUp
}
{
bug_103711h
ThreadSanitizer:Race
fun:webrtc::EventWrapper::~EventWrapper
fun:webrtc::EventPosix::~EventPosix
fun:webrtc::ProcessThreadImpl::~ProcessThreadImpl
fun:webrtc::ProcessThread::DestroyProcessThread
fun:webrtc::voe::SharedData::~SharedData
fun:webrtc::VoiceEngineImpl::~VoiceEngineImpl
fun:webrtc::VoiceEngine::Delete
fun:WebRTCAutoDelete::reset
fun:WebRTCAutoDelete::~WebRTCAutoDelete
fun:WebRTCAudioDeviceTest_Construct_Test::TestBody
}
{
bug_104769
ThreadSanitizer:Race
fun:timeout_correct
fun:event_base_loop
fun:base::MessagePumpLibevent::Run
fun:MessageLoop::RunInternal
fun:MessageLoop::RunHandler
fun:MessageLoop::Run
}
{
bug_104776_maybe_benign
ThreadSanitizer:Race
fun:base::StatisticsRecorder::StatisticsRecorder
fun:BrowserMain
fun:::RunNamedProcessTypeMain
fun:content::ContentMain
fun:ChromeMain
fun:main
}
{
bug_106196
ThreadSanitizer:Race
fun:tracked_objects::ThreadData::InitializeAndSetTrackingStatus
fun:ChildThread::OnSetProfilerStatus
fun:DispatchToMethod
}
{
bug_107181a
ThreadSanitizer:Race
fun:media::AudioRendererAlgorithmBase::set_playback_rate
fun:media::AudioRendererAlgorithmOLA::set_playback_rate
fun:media::AudioRendererBase::SetPlaybackRate
fun:AudioRendererImpl::SetPlaybackRate
fun:media::CompositeFilter::SetPlaybackRate
fun:media::PipelineImpl::PlaybackRateChangedTask
...
fun:base::internal::RunnableAdapter::Run
}
{
bug_107181b
ThreadSanitizer:Race
fun:media::AudioRendererAlgorithmBase::playback_rate
fun:media::AudioRendererBase::GetPlaybackRate
fun:AudioRendererImpl::Render
fun:AudioDevice::FireRenderCallback
fun:AudioDevice::Run
}
{
bug_107903
ThreadSanitizer:Race
...
fun:TestProfileSyncService::~TestProfileSyncService
fun:scoped_ptr::reset
fun:ProfileSyncServiceAutofillTest::TearDown
}