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, and libfontconfig.so.1. 20 // Since we don't instrument them, we cannot reason about the 21 // synchronization in them. 22 "race:libdbus*.so\n" 23 "race:libdconfsettings*.so\n" 24 "race:libflashplayer.so\n" 25 "race:libgio*.so\n" 26 "race:libglib*.so\n" 27 "race:libgobject*.so\n" 28 "race:libfontconfig.so.1\n" 29 30 // Intentional race in ToolsSanityTest.DataRace in base_unittests. 31 "race:base/tools_sanity_unittest.cc\n" 32 33 // Data race caused by swapping out the network change notifier with a mock 34 // [test-only]. http://crbug.com/927330. 35 "race:content/browser/net_info_browsertest.cc\n" 36 37 // http://crbug.com/244856 38 "race:libpulsecommon*.so\n" 39 40 // http://crbug.com/476529 41 "deadlock:cc::VideoLayerImpl::WillDraw\n" 42 43 // http://crbug.com/328826 44 "race:skia::(anonymous namespace)::g_pixel_geometry\n" 45 46 // http://crbug.com/328868 47 "race:PR_Lock\n" 48 49 // False positive in libc's tzset_internal, http://crbug.com/379738. 50 "race:tzset_internal\n" 51 52 // http://crbug.com/380554 53 "deadlock:g_type_add_interface_static\n" 54 55 // Lock inversion in third party code, won't fix. 56 // https://crbug.com/455638 57 "deadlock:dbus::Bus::ShutdownAndBlock\n" 58 59 // https://crbug.com/459429 60 "race:randomnessPid\n" 61 62 // http://crbug.com/691029 63 "deadlock:libGLX.so*\n" 64 65 // http://crbug.com/973947 66 "deadlock:libnvidia-glsi.so*\n" 67 68 // http://crbug.com/695929 69 "race:base::i18n::IsRTL\n" 70 "race:base::i18n::SetICUDefaultLocale\n" 71 72 // http://crbug.com/927330 73 "race:net::(anonymous namespace)::g_network_change_notifier\n" 74 75 // Harmless data races, see WTF::StringImpl::Release code comments. 76 "race:scoped_refptr<WTF::StringImpl>::AddRef\n" 77 "race:scoped_refptr<WTF::StringImpl>::Release\n" 78 79 // Harmless data race in ipcz block allocation. See comments in 80 // ipcz::BlockAllocator::Allocate(). 81 "race:ipcz::BlockAllocator::Allocate\n" 82 83 // https://crbug.com/1405439 84 "race:*::perfetto_track_event::internal::g_category_state_storage\n" 85 "race:perfetto::DataSource*::static_state_\n" 86 "race:perfetto::*::ResetForTesting\n" 87 88 // In V8 each global safepoint might lock isolate mutexes in a different 89 // order. This is allowed in this context as it is always guarded by a 90 // single global mutex. 91 "deadlock:GlobalSafepoint::EnterGlobalSafepointScope\n" 92 93 // End of suppressions. 94 ; // Please keep this semicolon. 95 96 #endif // THREAD_SANITIZER 97