/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
// // When running with ThreadSanitizer, we sometimes need to suppress existing // races. However, in any case, it should be either because // // 1) a bug is on file. In this case, the bug number should always be // included with the suppression. // // or 2) this is an intentional race. Please be very careful with judging // races as intentional and benign. Races in C++ are undefined behavior // and compilers increasingly rely on exploiting this for optimizations. // Hence, many seemingly benign races cause harmful or unexpected // side-effects. // // See also: // https://software.intel.com/en-us/blogs/2013/01/06/benign-data-races-what-could-possibly-go-wrong // // // Also, when adding any race suppressions here, make sure to always add // a signature for each of the two race stacks. Sometimes, TSan fails to // symbolize one of the two traces and this can cause suppressed races to // show up intermittently. // // clang-format off extern"C" MOZ_EXPORT constchar* __tsan_default_suppressions() { return"# Add your suppressions below\n"
// These libraries are uninstrumented and cause mutex false positives. // However, they can be unloaded by GTK early which we cannot avoid. "mutex:libGL.so\n" "mutex:libGLdispatch\n" "mutex:libGLX\n" // Bug 1637707 - permanent "mutex:libEGL_mesa.so\n" // ~GLContextGLX unlocks a libGL mutex. "mutex:GLContextGLX::~GLContextGLX\n" // Bug 1825171 "mutex:libffi.so\n" "mutex:wl_registry_destroy\n" // Bug 1824768 "mutex:libdbus-1\n" "mutex:swrast_dri.so\n" // Bug 1651446 - permanent (ffmpeg) "race:libavcodec.so*\n" "race:libavutil.so*\n" // For some reason, the suppressions on libpulse.so // through `called_from_lib` only work partially. "race:libpulse.so\n" "race:pa_context_suspend_source_by_index\n" "race:pa_context_unref\n" "race:pa_format_info_set_prop_string_array\n" "race:pa_stream_get_index\n" "race:pa_stream_update_timing_info\n" "race:vorbis_synthesis_init\n" // This is a callback from libglib-2 that is apparently // not fully suppressed through `called_from_lib`. "race:g_main_context_dispatch\n" // This is likely a false positive involving a mutex from GTK. // See also bug 1642653 - permanent. "mutex:GetMaiAtkType\n" // Bug 1688716 - Failure due to fire_glxtest_process // calling into uninstrumented external graphics driver code. // For example: iris_dri.so and swrast_dri.so. "race:fire_glxtest_process\n" "race:iris_dri\n" // Bug 1824768 "race:libLLVM-12\n" "race:radeonsi_dri\n" // Bug 1722721 - WebRender using uninstrumented Mesa drivers "race:swrast_dri.so\n" // Bug 1825171 "race:libffi.so\n" "race:mozilla::widget::WaylandBuffer::BufferReleaseCallbackHandler\n"
// Deadlock reports on single-threaded runtime. // // This is a known false positive from TSan where it reports // a potential deadlock even though all mutexes are only // taken by a single thread. For applications/tasks where we // are absolutely sure that no second thread will be involved // we should suppress these issues. // // See also https://github.com/google/sanitizers/issues/488
// Benign races in third-party code (should be fixed upstream)
// No Bug - permanent // No Upstream Bug Filed! // // SIMD Initialization in libjpeg, potentially runs // initialization twice, but otherwise benign. Init // routine itself is in native assembler. "race:init_simd\n" "race:simd_support\n" "race:jsimd_can_ycc_rgb\n" // Bug 1615228 - permanent // No Upstream Bug Filed! // // Likely benign race in ipc/chromium/ where we set // `message_loop_` to `NULL` on two threads when stopping // a thread at the same time it is already finishing. "race:base::Thread::Stop\n" // Bug 1615569 - permanent // No Upstream Bug Filed! // // NSS is using freebl from two different threads but freebl isn't // that threadsafe. "race:mp_exptmod.max_window_bits\n" // Bug 1652499 - permanent // No Upstream Bug Filed! // // Likely benign race in webrtc.org code - race while updating the // minimum log severity. "race:Loggable\n" "race:UpdateMinLogSeverity\n" // Bug 1652174 - permanent // Upstream Bug: https://github.com/libevent/libevent/issues/777 // // Likely benign write-write race in libevent to set a sticky boolean // flag to true. "race:event_debug_mode_too_late\n"
// Bug 1653618 - permanent // Upstream Bug: https://github.com/sctplab/usrsctp/issues/507 // // Might lead to scheduled timers in libusrsctp getting dropped? "race:sctp_handle_tick\n" "race:sctp_handle_sack\n" // Bug 1648604 - permanent // Upstream Bug: https://github.com/sctplab/usrsctp/issues/482 // // Likely benign race in libusrsctp allocator during a free. "race:system_base_info\n" // Benign lock-order-inversion in libusrsctp // No upstream bug filed! "deadlock:sctp_add_to_readq\n"
// Bug 1153409 - permanent // No Upstream Bug Filed! // // Probably benign - sqlite has a few optimizations where it does // racy reads and then does properly synchronized integrity checks // afterwards. Some concern of compiler optimizations messing this // up due to "volatile" being too weak for this. "race:third_party/sqlite3/*\n" "deadlock:third_party/sqlite3/*\n" // Bug 1674770 - permanent // Upstream Bug: https://github.com/Amanieu/parking_lot/issues/257 // // parking_lot using incorrect atomic orderings in RwLock, upstream // fix already up for review. "race:StrongRuleNode::ensure_child\n" // No Bug - permanent // Upstream Bugs: // // * https://github.com/rayon-rs/rayon/issues/812 // * https://github.com/crossbeam-rs/crossbeam/issues/589 // // Probably a false-positive from crossbeam's deque not being // understood by tsan. "race:crossbeam_deque*::resize\n" "race:crossbeam_deque*::push\n" "race:crossbeam_deque*::write\n" "race:crossbeam_deque*::read\n" "race:crossbeam_deque*::steal\n" // Bug 1805819 - permanent // No Upstream Bug Filed! // // False positive in libc's tzset_internal // See https://crbug.com/379738 also "race:tzset_internal\n"
// The rest of these suppressions are miscellaneous issues in gecko // that should be investigated and ideally fixed.
// Bug 1671574 - Permanent // The StartupCache thread intentionally races with the main thread to // trigger OS-level paging. It is never joined with the main thread. "thread:StartupCache\n"
// Bug 1734262 - Permanent // When spawning async processes, we create a helper thread to wait for // the process to terminate in order to asynchronously report the exit // code to Gecko. This thread waits on a syscall for the process to end, // which means there's no easy way to cancel and join it during Gecko // shutdown. Suppress thread leak reports for this thread. "thread:CreateMonitorThread\n"
// No Bug - Logging bug in Mochitests "race:mochitest/ssltunnel/ssltunnel.cpp\n"
// This thread does not seem to be stopped/joined. // ImageBridgeChild should be turned back into a background // task queue in bug 1647628, in which case these suppressions // can be removed. "race:mozilla::layers::ImageBridgeChild::ShutDown\n"
// Bug 1755449 // The Glean init thread is used to perform I/O and other blocking operations. // It is never joined with the main thread, but this is being re-evaluated. "thread:glean::initialize\n"
// Bug 1822605 - permanent // A race exists in libvulkan_lvp.so. This was previously addressed in bug // 1816713. However, libvulkan_lvp.so is unloaded so a called_from_lib // suppression cannot be used. "race:libvulkan_lvp.so\n"
// Bug 1894073 - false positive // TSan isn't aware of IPC; see bug for detailed explanation. "race:LaunchAppWithForkServer\n"
// End of suppressions.
; // Please keep this semicolon.
} // clang-format on
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.