diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/valgrind/tsan/suppressions.txt | 362 |
1 files changed, 178 insertions, 184 deletions
diff --git a/tools/valgrind/tsan/suppressions.txt b/tools/valgrind/tsan/suppressions.txt index 9adb9a2..11e21b0 100644 --- a/tools/valgrind/tsan/suppressions.txt +++ b/tools/valgrind/tsan/suppressions.txt @@ -1,159 +1,197 @@ +# 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 ############################ -# Real races in Chromium +# 1.1 Benign races in libc + +# A benign race inside the implementation of internal libc mutex { - bug_23433 + Benign races in __lll_*lock_*_private ThreadSanitizer:Race - fun:*logging*SetMinLogLevel* + fun:__lll_*lock_*_private } +# Benign races below thread-safe time-conversion functions { - bug_24419 + fun:__tz* ThreadSanitizer:Race - fun:*BrowserProcessImpl*nspector*iles* + fun:__tz* } - { - bug_37496 + fun:tzset* ThreadSanitizer:Race ... - fun:*browser_sync*SyncShareIntercept*Observe* + fun:tzset* } +# Benign race in thread-safe function { - bug_41314 + fun:mkstemp* ThreadSanitizer:Race ... - fun:base::LaunchApp* - fun:ChildProcessLauncher::Context::LaunchInternal* + fun:mkstemp* } +# We already ignore memory accesses inside ld +# but we also need to ignore accesses below it. { - bug_46642a + fun:_dl_close ThreadSanitizer:Race - fun:*media*PipelineImpl*InitializeTask* + ... + fun:_dl_close } +# fprintf is thread-safe. The benign races happen on the internal lock. { - bug_46642b + Benign race below fprintf (1) ThreadSanitizer:Race - fun:*media*PipelineImpl*GetCurrentTime* + ... + fun:buffered_vfprintf + ... + fun:fprintf +} +{ + Benign race below fprintf (2) + ThreadSanitizer:Race + fun:new_do_write + fun:vfprintf } { - bug_57266a + fun:timegm ThreadSanitizer:Race ... - fun:*vp8*_* + fun:timegm } { - bug_57266b + fun:mktime ThreadSanitizer:Race ... - obj:*libffmpegsumo.* - fun:ThreadSanitizerStartThread + fun:mktime } { - bug_57266c + Benign race in nss (PR_EnterMonitor) ThreadSanitizer:Race - fun:thread_encoding_proc + fun:PR_EnterMonitor } +# (Looks same as the one above) { - bug_64075a + bug_84244 ThreadSanitizer:Race - fun:disk_cache::EntryImpl::GetDataSize* - fun:net::HttpCache::Transaction::* + fun:PR_ExitMonitor + ... + fun:nss* } +############################ +# 1.2 Benign races in ICU { - bug_64075b + Two writes, same value (ICU gGlobalMutex, gMutexesInUse) ThreadSanitizer:Race - fun:disk_cache::EntryImpl::UpdateSize* ... - fun:disk_cache::EntryImpl::WriteDataImpl* + fun:umtx_init_46 } { - bug_67957 + Two writes, same value (ICU gHeapInUse) ThreadSanitizer:Race - fun:Replace_memcpy - fun:memcpy - fun:Serialize - fun:UserScriptMaster::ScriptReloader::RunLoad + fun:uprv_malloc_46 } { - bug_72169a + Two writes, same value (ICU gLibCleanupFunctions[UCLN_UPLUG]) ThreadSanitizer:Race - fun:base::Thread::ThreadMain* + fun:ucln_registerCleanup_46 + fun:uplug_init_46 + fun:u_init_46 } +# Reading a pointer to a mutex being initialized in a concurrent thread. { - bug_72169b + A benign race in umtx_lock_46 ThreadSanitizer:Race - fun:base::Thread::message_loop* - ... - fun:*::InotifyReader::OnInotifyEvent* + fun:umtx_lock_46 } +############################ +# 1.3 Benign races in SQLLite +# TODO(timurrr|oshima): following three suppression could be obsolete. { - bug_72548 + Two writes, same value (SQLLite pthreadMutexAlloc) ThreadSanitizer:Race ... - fun:JSC::Yarr::Interpreter::*Disjunction* - fun:JSC::Yarr::Interpreter::interpret* - fun:JSC::Yarr::interpret* + fun:pthreadMutexAlloc + fun:sqlite3MutexAlloc } + { - bug_86507 + Two writes, same value (under sqlite3Malloc) ThreadSanitizer:Race - fun:VideoCaptureController::OnDeviceStopped + ... + fun:sqlite3Malloc* } -############################ -# Benign races in Chromium { - bug_61179 [benign race on tracked_objects::Births] + Two writes, same value (sqlite3_initialize) ThreadSanitizer:Race - fun:tracked_objects::Births::*Birth* + fun:sqlite3_initialize + fun:openDatabase } { - bug_62694 [benign races in Histogram in CookieMonster] + bug_84094_a (Could be benign. See bug for details) ThreadSanitizer:Race ... - fun:base::Histogram::* - fun:net::CookieMonster::* + fun:pcache1Fetch + fun:sqlite3PcacheFetch } { - bug_64185a [probably-benign races in Histogram in skia::ImageOperations] + bug_84094_b (Could be benign. See bug for details) ThreadSanitizer:Race - ... - fun:base::Histogram::* - fun:skia::ImageOperations::* + fun:sqlite3StatusSet + fun:pcache1Alloc } { - bug_64185b [probably-benign races in Histogram in skia::ImageOperations] + bug_84094_c (Could be benign. See bug for details) ThreadSanitizer:Race ... - fun:base::Histogram::* - fun:HistogramSynchronizer::DeserializeHistogramList* + fun:pcache1Unpin + fun:pcacheUnpin + fun:sqlite3PcacheMakeClean + fun:sqlite3PcacheCleanAll } +############################ +# 1.4 Real races in third_party { - bug_71634 + 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:gdk_x_error - ... - fun:ui::GetWindowGeometry* + fun:v8::Locker::* } -############################ -# Real races in third_party { bug_23244 (libevent) ThreadSanitizer:Race @@ -214,38 +252,6 @@ } { - Nvidia GL driver destroys an invalid lock - ThreadSanitizer:InvalidLock - fun:pthread_mutex_destroy - obj:*nvidia*/libGL.so.* -} - -{ - 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 -} - -{ bug_84467 (Could be benign. See bug for details) ThreadSanitizer:Race fun:unixTempFileDir @@ -267,9 +273,9 @@ fun:_cairo_bentley_ottmann_tessellate_polygon } +# 2. intentional unit test errors, or stuff that is somehow a false positive ############################ -# Data races in tests - +# 2.1 Data races in tests { bug_30582 ThreadSanitizer:Race @@ -360,156 +366,158 @@ } ############################ -# Benign races in ICU +# 2.2 Benign races in Chromium { - Two writes, same value (ICU gGlobalMutex, gMutexesInUse) + bug_61179 [benign race on tracked_objects::Births] ThreadSanitizer:Race - ... - fun:umtx_init_46 + fun:tracked_objects::Births::*Birth* } { - Two writes, same value (ICU gHeapInUse) + bug_62694 [benign races in Histogram in CookieMonster] ThreadSanitizer:Race - fun:uprv_malloc_46 + ... + fun:base::Histogram::* + fun:net::CookieMonster::* } { - Two writes, same value (ICU gLibCleanupFunctions[UCLN_UPLUG]) + bug_64185a [probably-benign races in Histogram in skia::ImageOperations] ThreadSanitizer:Race - fun:ucln_registerCleanup_46 - fun:uplug_init_46 - fun:u_init_46 + ... + fun:base::Histogram::* + fun:skia::ImageOperations::* } -# Reading a pointer to a mutex being initialized in a concurrent thread. { - A benign race in umtx_lock_46 + bug_64185b [probably-benign races in Histogram in skia::ImageOperations] ThreadSanitizer:Race - fun:umtx_lock_46 + ... + fun:base::Histogram::* + fun:HistogramSynchronizer::DeserializeHistogramList* } -############################ -# Benign race in SQLLite -# TODO(timurrr|oshima): following three suppression could be obsolete. { - Two writes, same value (SQLLite pthreadMutexAlloc) + bug_71634 ThreadSanitizer:Race + fun:gdk_x_error ... - fun:pthreadMutexAlloc - fun:sqlite3MutexAlloc + fun:ui::GetWindowGeometry* } +# 3. Suppressions for real chromium bugs that are not yet fixed. +############################ +# Real races in Chromium { - Two writes, same value (under sqlite3Malloc) + bug_23433 ThreadSanitizer:Race - ... - fun:sqlite3Malloc* + fun:*logging*SetMinLogLevel* } { - Two writes, same value (sqlite3_initialize) + bug_24419 ThreadSanitizer:Race - fun:sqlite3_initialize - fun:openDatabase + fun:*BrowserProcessImpl*nspector*iles* } -############################ -# Races in V8 - -# http://code.google.com/p/v8/issues/detail?id=361 { - Race on Locker::active_ in v8 + bug_37496 ThreadSanitizer:Race - fun:v8::Locker::* + ... + fun:*browser_sync*SyncShareIntercept*Observe* } -############################ -# Benign races in libc - -# A benign race inside the implementation of internal libc mutex { - Benign races in __lll_*lock_*_private + bug_41314 ThreadSanitizer:Race - fun:__lll_*lock_*_private + ... + fun:base::LaunchApp* + fun:ChildProcessLauncher::Context::LaunchInternal* } -# Benign race below thread-safe time-conversion functions { - fun:__tz* + bug_46642a ThreadSanitizer:Race - fun:__tz* + fun:*media*PipelineImpl*InitializeTask* } -# Benign race below thread-safe time-conversion functions { - fun:tzset* + bug_46642b ThreadSanitizer:Race - ... - fun:tzset* + fun:*media*PipelineImpl*GetCurrentTime* } -# Benign race in thread-safe function { - fun:mkstemp* + bug_57266a ThreadSanitizer:Race ... - fun:mkstemp* + fun:*vp8*_* } -# We already ignore memory accesses inside ld -# but we also need to ignore accesses below it. { - fun:_dl_close + bug_57266b ThreadSanitizer:Race ... - fun:_dl_close + obj:*libffmpegsumo.* + fun:ThreadSanitizerStartThread } -# fprintf is thread-safe. The benign races happen on the internal lock. { - Benign race below fprintf (1) + bug_57266c ThreadSanitizer:Race - ... - fun:buffered_vfprintf - ... - fun:fprintf + fun:thread_encoding_proc } { - Benign race below fprintf (2) + bug_64075a ThreadSanitizer:Race - fun:new_do_write - fun:vfprintf + fun:disk_cache::EntryImpl::GetDataSize* + fun:net::HttpCache::Transaction::* } { - fun:timegm + bug_64075b ThreadSanitizer:Race + fun:disk_cache::EntryImpl::UpdateSize* ... - fun:timegm + fun:disk_cache::EntryImpl::WriteDataImpl* } { - fun:mktime + bug_67957 ThreadSanitizer:Race - ... - fun:mktime + fun:Replace_memcpy + fun:memcpy + fun:Serialize + fun:UserScriptMaster::ScriptReloader::RunLoad } { - Benign race in nss (PR_EnterMonitor) + bug_72169a ThreadSanitizer:Race - fun:PR_EnterMonitor + fun:base::Thread::ThreadMain* } -# (Looks same as the one above) { - bug_84244 + bug_72169b ThreadSanitizer:Race - fun:PR_ExitMonitor + fun:base::Thread::message_loop* ... - fun:nss* + fun:*::InotifyReader::OnInotifyEvent* +} + +{ + bug_72548 + ThreadSanitizer:Race + ... + fun:JSC::Yarr::Interpreter::*Disjunction* + fun:JSC::Yarr::Interpreter::interpret* + fun:JSC::Yarr::interpret* +} +{ + bug_86507 + ThreadSanitizer:Race + fun:VideoCaptureController::OnDeviceStopped } { @@ -595,17 +603,3 @@ fun:WebCore::WorkerThread::workerThreadStart fun:WTF::threadEntryPoint } - -############################ -# TSan false positives -{ - tsanbug_62a - ThreadSanitizer:Race - fun:__memset_sse2 -} - -{ - tsanbug_62b - ThreadSanitizer:Race - fun:__GI_memcpy -} |