summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/valgrind/tsan/suppressions.txt362
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
-}