]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Change images for TSAN jobs
authorMichal Nowak <mnowak@isc.org>
Fri, 26 May 2023 08:50:58 +0000 (10:50 +0200)
committerMichal Nowak <mnowak@isc.org>
Tue, 30 May 2023 18:13:19 +0000 (20:13 +0200)
Fedora 38 and Debian "bullseye" images were "forked" to images used only
for TSAN CI jobs. The new images contain TSAN-aware liburcu that does
not fit well with ASAN CI jobs for which original images were also used.

Also, drop liburcu-related TSAN suppressions because they are
unnecessary with TSAN-aware liburcu.

.gitlab-ci.yml
.reuse/dep5
.tsan-suppress
.tsan-suppress-extra [deleted file]

index c29b8c8315e93abcf2a6662375ef81ac9e33c8fb..78a6f405c7f766c214b08280cb98fb002a447470 100644 (file)
@@ -28,9 +28,9 @@ variables:
   ASAN_SYMBOLIZER_PATH: "${LLVM_SYMBOLIZER}"
 
   TSAN_OPTIONS_COMMON: "disable_coredump=0 second_deadlock_stack=1 atexit_sleep_ms=1000 history_size=7 log_exe_name=true log_path=tsan"
-  TSAN_SYMBOLIZER: "external_symbolizer_path=/usr/bin/llvm-symbolizer"
   TSAN_SUPPRESSIONS: "suppressions=${CI_PROJECT_DIR}/.tsan-suppress"
-  TSAN_OPTIONS_DEFAULT: "${TSAN_OPTIONS_COMMON} ${TSAN_SUPPRESSIONS} ${TSAN_SYMBOLIZER}"
+  TSAN_OPTIONS_DEBIAN: "${TSAN_OPTIONS_COMMON} ${TSAN_SUPPRESSIONS} external_symbolizer_path=${LLVM_SYMBOLIZER}"
+  TSAN_OPTIONS_FEDORA: "${TSAN_OPTIONS_COMMON} ${TSAN_SUPPRESSIONS} external_symbolizer_path=/usr/bin/llvm-symbolizer"
 
   UBSAN_OPTIONS: "halt_on_error=1:abort_on_error=1:disable_coredump=0"
 
@@ -158,6 +158,10 @@ stages:
   image: "$CI_REGISTRY_IMAGE:debian-bullseye-amd64"
   <<: *linux_amd64
 
+.tsan-debian-bullseye-amd64: &tsan_debian_bullseye_amd64_image
+  image: "$CI_REGISTRY_IMAGE:tsan-debian-bullseye-amd64"
+  <<: *linux_amd64
+
 .debian-bullseye-amd64cross32: &debian_bullseye_amd64cross32_image
   image: "$CI_REGISTRY_IMAGE:debian-bullseye-amd64cross32"
   <<: *linux_amd64
@@ -174,6 +178,10 @@ stages:
 
 # Fedora
 
+.tsan-fedora-38-amd64: &tsan_fedora_38_amd64_image
+  image: "$CI_REGISTRY_IMAGE:tsan-fedora-38-amd64"
+  <<: *linux_amd64
+
 .fedora-38-amd64: &fedora_38_amd64_image
   image: "$CI_REGISTRY_IMAGE:fedora-38-amd64"
   <<: *linux_amd64
@@ -1090,13 +1098,13 @@ gcc:tsan:
     CFLAGS: "${CFLAGS_COMMON} -fsanitize=thread"
     LDFLAGS: "-fsanitize=thread"
     EXTRA_CONFIGURE: "--with-libidn2 --enable-pthread-rwlock --without-jemalloc"
-  <<: *fedora_38_amd64_image
+  <<: *tsan_fedora_38_amd64_image
   <<: *build_job
 
 system:gcc:tsan:
   variables:
-    TSAN_OPTIONS: "${TSAN_OPTIONS_DEFAULT}"
-  <<: *fedora_38_amd64_image
+    TSAN_OPTIONS: "${TSAN_OPTIONS_FEDORA}"
+  <<: *tsan_fedora_38_amd64_image
   <<: *system_test_tsan_job
   needs:
     - job: gcc:tsan
@@ -1104,15 +1112,15 @@ system:gcc:tsan:
 
 unit:gcc:tsan:
   variables:
-    TSAN_OPTIONS: "${TSAN_OPTIONS_DEFAULT}"
-  <<: *fedora_38_amd64_image
+    TSAN_OPTIONS: "${TSAN_OPTIONS_FEDORA}"
+  <<: *tsan_fedora_38_amd64_image
   <<: *unit_test_tsan_job
   needs:
     - job: gcc:tsan
       artifacts: true
 
 clang:tsan:
-  <<: *base_image
+  <<: *tsan_debian_bullseye_amd64_image
   <<: *build_job
   variables:
     CC: "${CLANG}"
@@ -1122,8 +1130,8 @@ clang:tsan:
 
 system:clang:tsan:
   variables:
-    TSAN_OPTIONS: "${TSAN_OPTIONS_COMMON} ${TSAN_SUPPRESSIONS} external_symbolizer_path=${LLVM_SYMBOLIZER}"
-  <<: *base_image
+    TSAN_OPTIONS: "${TSAN_OPTIONS_DEBIAN}"
+  <<: *tsan_debian_bullseye_amd64_image
   <<: *system_test_tsan_job
   needs:
     - job: clang:tsan
@@ -1132,8 +1140,8 @@ system:clang:tsan:
 
 unit:clang:tsan:
   variables:
-    TSAN_OPTIONS: "${TSAN_OPTIONS_COMMON} suppressions=$CI_PROJECT_DIR/.tsan-suppress-extra  external_symbolizer_path=${LLVM_SYMBOLIZER}"
-  <<: *base_image
+    TSAN_OPTIONS: "${TSAN_OPTIONS_DEBIAN}"
+  <<: *tsan_debian_bullseye_amd64_image
   <<: *unit_test_tsan_job
   needs:
     - job: clang:tsan
@@ -1372,14 +1380,14 @@ respdiff-short:asan:
 respdiff-short:tsan:
   <<: *respdiff_job
   <<: *default_triggering_rules
-  <<: *debian_bullseye_amd64_image
+  <<: *tsan_debian_bullseye_amd64_image
   variables:
     CC: gcc
     CFLAGS: "${CFLAGS_COMMON} -Og -fsanitize=thread"
     LDFLAGS: "-fsanitize=thread"
     EXTRA_CONFIGURE: "--enable-pthread-rwlock --without-jemalloc"
     MAX_DISAGREEMENTS_PERCENTAGE: "0.5"
-    TSAN_OPTIONS: "${TSAN_OPTIONS_DEFAULT}"
+    TSAN_OPTIONS: "${TSAN_OPTIONS_DEBIAN}"
   script:
     - bash respdiff.sh -s named -q "${PWD}/10k_a.txt" -c 3 -w "${PWD}/rspworkdir" "${CI_PROJECT_DIR}" "/usr/local/respdiff-reference-bind/sbin/named"
   after_script:
@@ -1413,14 +1421,14 @@ respdiff-long:asan:
 respdiff-long:tsan:
   <<: *respdiff_job
   <<: *api_schedules_tags_triggers_web_triggering_rules
-  <<: *debian_bullseye_amd64_image
+  <<: *tsan_debian_bullseye_amd64_image
   variables:
     CC: gcc
     CFLAGS: "${CFLAGS_COMMON} -Og -fsanitize=thread"
     LDFLAGS: "-fsanitize=thread"
     EXTRA_CONFIGURE: "--enable-pthread-rwlock --without-jemalloc"
     MAX_DISAGREEMENTS_PERCENTAGE: "0.5"
-    TSAN_OPTIONS: "${TSAN_OPTIONS_DEFAULT}"
+    TSAN_OPTIONS: "${TSAN_OPTIONS_DEBIAN}"
   script:
     - bash respdiff.sh -s named -q "${PWD}/100k_mixed.txt" -c 3 -w "${PWD}/rspworkdir" "${CI_PROJECT_DIR}" "/usr/local/respdiff-reference-bind/sbin/named"
   after_script:
index eb708299f7896629d963a3db4aed07763842c711..0554a1613b9f63b95a2655c5051c2a589a48819d 100644 (file)
@@ -164,7 +164,6 @@ Files: **/.clang-format
        .lgtm.yml
        .pylintrc
        .tsan-suppress
-       .tsan-suppress-extra
        .uncrustify.cfg
        doc/misc/*.zoneopt
        doc/misc/options
index 77aa285e0a62afe7965f0cf184a340d5db90a2fa..9473b652d298003bda2cbdf6b66b043878068b28 100644 (file)
@@ -1,4 +1,3 @@
-# be more selective with liburcu
-race:rcu_barrier
-race:rcu_*_barrier
-thread:*
+# Uninstrumented libraries
+called_from_lib:libfstrm.so
+race:dummyrpz
diff --git a/.tsan-suppress-extra b/.tsan-suppress-extra
deleted file mode 100644 (file)
index 2e31db7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# Uninstrumented libraries
-called_from_lib:libfstrm.so
-called_from_lib:libdummyrpz.so
-# be more selective with liburcu
-race:rcu_barrier
-race:rcu_*_barrier
-thread:*