blob: 260a3dae752c6ae8b9fff62e0b784d3d94dcc5d4 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
race:_dl_deallocate_tls
race:kudu::tablet::ScopedRowLock::Release
# libunwind uses some double-checked locking which isn't perfectly safe.
# Reported at http://savannah.nongnu.org/bugs/index.php?42677
#
# With TSAN in clang 3.5, it's the init() function that's flagged as a data
# race (not local_addr_space_init()), due to the former calling sigfillset()
# on an unprotected global variable. Given that init() invokes
# local_addr_space_init(), suppressing init() suppresses both races.
race:_ULx86_64_init
# libev uses some lock-free synchronization, but doesn't have TSAN annotations.
# See http://lists.schmorp.de/pipermail/libev/2013q2/002178.html or KUDU-366
# for examples.
race:evpipe_write
race:evpipe_init
race:epoll_ctl
# concurrent btree uses optimistic concurrency, needs to be annotated a bunch
# more before it would pass. Relatively confident that it is correct based on
# a lot of stress testing.
race:concurrent_btree.h
# We're currently a little lax on using atomic instructions for mutations where
# we might need to. There are possible bugs lurking here, though likely we are
# hiding behind x86 TSO for now.
race:kudu::tablet::ApplyMutationsAndGenerateUndos
race:kudu::tablet::MemRowSet::Iterator::ApplyMutationsToProjectedRow
race:kudu::tablet::MemRowSet::Iterator::FetchRows
race:kudu::tablet::Mutation::*
race:kudu::RowChangeListDecoder::Init
# GLog's fatal signal handler isn't signal-safe -- it allocates memory.
# This isn't great, but nothing we can do about it. See
# https://code.google.com/p/google-glog/issues/detail?id=191
signal:logging_fail
# LOG(FATAL) from multiple threads can also end up triggering a TSAN error.
# See https://github.com/google/glog/issues/80 for a general list of TSAN
# issues in glog.
race:google::LogMessage::Init
# This method in Boost's UUID library operates on static state with impunity,
# triggering (harmless) data races in TSAN when boost::uuids::random_generator
# instances are created across threads (see kudu::ObjectIdGenerator).
race:boost::uuids::detail::seed_rng::sha1_random_digest_
# ------------------------------------------------------------
# Known bugs below. As these JIRAs are resolved, please remove the relevant
# suppression.
# ------------------------------------------------------------
# KUDU-1283: TSAN warning from consensus OpId
race:kudu::consensus::OpId::CopyFrom
# KUDU-186: sketchy synchronization in catalog manager
race:kudu::master::CatalogManager::Shutdown
race:kudu::master::CatalogManagerBgTasks::Shutdown
race:kudu::master::CatalogManager::~CatalogManager
# KUDU-189: unsynchronized access to 'state_' in DeferredCallback
race:kudu::master::AsyncTabletRequestTask::DeferredCallback
# KUDU-574: raft_consensus_quorum-test race on LocalTestPeerProxy destruction
race:kudu::consensus::LocalTestPeerProxy::~LocalTestPeerProxy
# KUDU-569: unsynchronized access to 'state_', 'acceptor_pools_', in
# GetBoundAddresses()
race:kudu::Webserver::GetBoundAddresses
race:kudu::RpcServer::GetBoundAddresses