summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/src/tsan.sup
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
commit5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda (patch)
tree1acdfa5220cd13b7be43a2a01368e80d306473ca /examples/redis-unstable/src/tsan.sup
parentc7ab12bba64d9c20ccd79b132dac475f7bc3923e (diff)
downloadcrep-5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda.tar.gz
Add Redis source code for testing
Diffstat (limited to 'examples/redis-unstable/src/tsan.sup')
-rw-r--r--examples/redis-unstable/src/tsan.sup21
1 files changed, 21 insertions, 0 deletions
diff --git a/examples/redis-unstable/src/tsan.sup b/examples/redis-unstable/src/tsan.sup
new file mode 100644
index 0000000..904ea6b
--- /dev/null
+++ b/examples/redis-unstable/src/tsan.sup
@@ -0,0 +1,21 @@
+# collect_stacktrace_data() calls backtrace() from a signal handler but
+# backtrace() is signal-unsafe since it might allocate memory, at least on
+# glibc 2.39 it does through a call to _dl_map_object_deps().
+signal:collect_stacktrace_data
+signal:printCrashReport
+# TODO Investigate this race in jemalloc probably related to
+# https://github.com/jemalloc/jemalloc/issues/2621
+race:malloc_mutex_trylock_final
+
+# A race can happen on conn->last_errno if replica client is reading/writing
+# data in IO thread and main thread is calling connAddrPeerName for some reason
+# (f.e genRedisInfoString/roleCommand...).
+# Not worth the additional code for synchronization as:
+# - errno is thread-safe according to POSIX std
+# - we don't support systems that allow word tearing, i.e last_errno value would
+# be a correct value at the end - either the errno from main or from IO thread
+# - even if we fix the data race on last_errno we still have the problem of it
+# being set to either errno unless we pause the IO thread during main-thread's
+# execution which would incur too big of a cost.
+# - the race happens rarely
+race:connSocketAddr