# 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.

# ThreadSanitizer suppressions file for Kvrocks
# refer to https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions

# suppress data race in google::LogMessageTime::CalcGmtOffset()
race:google::LogMessageTime::CalcGmtOffset
# suppress data race between google::ShutdownGoogleLogging() and google::IsGoogleLoggingInitialized()
race:google::ShutdownGoogleLogging
# FIXME: currently the Stats::GetInstantaneousMetric is not thread-safe since inst_metrics[metric].samples is not atomic or lock-protected
race:Stats::GetInstantaneousMetric
# FIXME: currently we suppress all signal-safe reports since we call Server::Stop in the signal handler
signal:*
# suppress SSL context pointer re-assignment and read in different threads
race:UniqueSSLContext::operator=
# FIXME: currently, the config set (Config::Set), read (config_->some_option_) and set callbacks are not thread safe
race:Config::Set
