1 // Copyright 2014 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // This file contains the default suppressions for ThreadSanitizer. 6 // You can also pass additional suppressions via TSAN_OPTIONS: 7 // TSAN_OPTIONS=suppressions=/path/to/suppressions. Please refer to 8 // http://dev.chromium.org/developers/testing/threadsanitizer-tsan-v2 9 // for more info. 10 11 #if defined(THREAD_SANITIZER) 12 13 // Please make sure the code below declares a single string variable 14 // kTSanDefaultSuppressions contains TSan suppressions delimited by newlines. 15 // See http://dev.chromium.org/developers/testing/threadsanitizer-tsan-v2 16 // for the instructions on writing suppressions. 17 char kTSanDefaultSuppressions[] = 18 // False positives in libdbus.so, libdconfsettings.so, libflashplayer.so, 19 // libgio.so, libglib.so, libgobject.so, libfontconfig.so.1 and 20 // swrast_dri.so. 21 // Since we don't instrument them, we cannot reason about the 22 // synchronization in them. 23 "race:libdbus*.so\n" 24 "race:libdconfsettings*.so\n" 25 "race:libflashplayer.so\n" 26 "race:libgio*.so\n" 27 "race:libglib*.so\n" 28 "race:libgobject*.so\n" 29 "race:libfontconfig.so.1\n" 30 "race:swrast_dri.so\n" 31 32 // Intentional race in ToolsSanityTest.DataRace in base_unittests. 33 "race:base/tools_sanity_unittest.cc\n" 34 35 // Data race caused by swapping out the network change notifier with a mock 36 // [test-only]. http://crbug.com/927330. 37 "race:content/browser/net_info_browsertest.cc\n" 38 39 // http://crbug.com/244856 40 "race:libpulsecommon*.so\n" 41 42 // http://crbug.com/476529 43 "deadlock:cc::VideoLayerImpl::WillDraw\n" 44 45 // http://crbug.com/328868 46 "race:PR_Lock\n" 47 48 // False positive in libc's tzset_internal, http://crbug.com/379738. 49 "race:tzset_internal\n" 50 51 // http://crbug.com/380554 52 "deadlock:g_type_add_interface_static\n" 53 54 // Lock inversion in third party code, won't fix. 55 // https://crbug.com/455638 56 "deadlock:dbus::Bus::ShutdownAndBlock\n" 57 58 // https://crbug.com/459429 59 "race:randomnessPid\n" 60 61 // http://crbug.com/691029 62 "deadlock:libGLX.so*\n" 63 64 // http://crbug.com/973947 65 "deadlock:libnvidia-glsi.so*\n" 66 67 // http://crbug.com/695929 68 "race:base::i18n::IsRTL\n" 69 "race:base::i18n::SetICUDefaultLocale\n" 70 71 // http://crbug.com/927330 72 "race:net::(anonymous namespace)::g_network_change_notifier\n" 73 74 // Harmless data races, see WTF::StringImpl::Release code comments. 75 "race:scoped_refptr<WTF::StringImpl>::AddRef\n" 76 "race:scoped_refptr<WTF::StringImpl>::Release\n" 77 78 // Harmless data race in ipcz block allocation. See comments in 79 // ipcz::BlockAllocator::Allocate(). 80 "race:ipcz::BlockAllocator::Allocate\n" 81 82 // https://crbug.com/1405439 83 "race:*::perfetto_track_event::internal::g_category_state_storage\n" 84 "race:perfetto::DataSource*::static_state_\n" 85 "race:perfetto::*::ResetForTesting\n" 86 87 // https://crbug.com/327473683 88 "race:SetCoveredByBucketing\n" 89 90 // In V8 each global safepoint might lock isolate mutexes in a different 91 // order. This is allowed in this context as it is always guarded by a 92 // single global mutex. 93 "deadlock:GlobalSafepoint::EnterGlobalSafepointScope\n" 94 95 // Logging crash keys is inherently unsafe. We suppress this rather than fix 96 // it because OutputCrashKeysToStream is only enabled in non-official builds 97 // and the race is therefore not present in released builds. 98 "race:crash_reporter::*::OutputCrashKeysToStream\n" 99 100 // End of suppressions. 101 ; // Please keep this semicolon. 102 103 #endif // THREAD_SANITIZER 104