mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
84bebc534b
The problem is that ignorelist `fun` does not work recursively. <details> <summary>example</summary> ```c // test.cpp bool flag = false; // avoid mangling extern "C" { void set_flag_impl() { flag = true; } void set_flag() { set_flag_impl(); } void set_flag_if() { if (flag) flag = false; } } int main() { std::thread t1([]{ set_flag(); }); std::thread t2([]{ set_flag_if(); }); t1.join(); t2.join(); return 0; } ``` ``` // ignorelist [thread] fun:set_flag ``` ``` $ clang++ -g -fno-omit-frame-pointer -fsanitize=thread -fsanitize-ignorelist=ignorelist -o test test.cpp && ./test SUMMARY: ThreadSanitizer: data race /tmp/tsan-test/test.cpp:18:9 in set_flag_if $ sed -i 's/set_flag/set_flag_impl/' ignorelist $ clang++ -g -fno-omit-frame-pointer -fsanitize=thread -fsanitize-ignorelist=ignorelist -o test test.cpp && ./test OK ``` </details> Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
12 lines
401 B
Plaintext
12 lines
401 B
Plaintext
# Note, this file is ignorelist file [1] not suppressions [2].
|
|
#
|
|
# [1]: https://clang.llvm.org/docs/SanitizerSpecialCaseList.html
|
|
# [2]: https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
|
|
#
|
|
[thread]
|
|
# https://github.com/ClickHouse/ClickHouse/issues/55629
|
|
fun:rd_kafka_broker_set_nodename
|
|
# https://github.com/ClickHouse/ClickHouse/issues/60443
|
|
fun:rd_avg_calc
|
|
fun:rd_avg_rollover
|