-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathtsan_suppressions.txt
More file actions
42 lines (36 loc) · 1.82 KB
/
tsan_suppressions.txt
File metadata and controls
42 lines (36 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# TSan suppression file for ros2_medkit
# Suppresses known issues in third-party code (DDS, rclcpp, httplib).
# This file is referenced by TSAN_OPTIONS in CI.
#
# RULE: Never suppress ros2_medkit code. If TSan finds a race in our
# code, fix it. Suppressions are only for libraries we don't control.
# FastDDS internal thread pool and transport layer
race:eprosima::fastdds::*
race:eprosima::fastrtps::*
# FastCDR serialize/deserialize races on TopicPayloadPool buffer during
# intra-process communication. Write by publisher thread via serialize_array
# races against read by subscriber thread via deserialize_array on the same
# payload allocation from eprosima::fastrtps::rtps::TopicPayloadPool::do_get_payload.
# Upstream tracking: https://github.com/eProsima/Fast-DDS/issues/6340 (open).
# Narrowed to the exact symbols on the reported TSan stack so future races
# introduced by our own FastCDR misuse (e.g. sharing a Cdr across threads)
# would still be reported.
race:eprosima::fastcdr::Cdr::serialize*
race:eprosima::fastcdr::Cdr::deserialize*
# rclcpp signal handler (writes to global atomic from signal context)
race:rclcpp::SignalHandler*
race:rclcpp::signal_handler
# rcl/rcutils logging lazy initialization (benign one-time race)
race:rcl_logging_*
race:rcutils_logging_*
# cpp-httplib: data race in Server::stop() and create_server_socket()
# on internal socket fd between listen and stop threads.
# System-packaged libcpp-httplib.so, not our code.
race:httplib::*
# rclcpp/glibc: unlock-of-unlocked-mutex in __gthread_mutex_unlock during
# test teardown when executor threads race with node destruction.
mutex:__gthread_mutex_unlock
# rclcpp: lock-order-inversion in Context::add_on_shutdown_callback
# during test TearDownTestSuite when rclcpp::shutdown() races with
# executor threads still calling context methods.
deadlock:rclcpp::Context*