[PATCH 1/1] test: suppress all interceptors in glib

Subject: [PATCH 1/1] test: suppress all interceptors in glib

Date: Wed, 30 Aug 2023 14:52:55 +0200

To: notmuch@notmuchmail.org

Cc: Kevin Boulain

From: Kevin Boulain


On ppc64el, races are detected by TSan:
  WARNING: ThreadSanitizer: data race (pid=4520)
    Read of size 8 at 0x7ffff20016c0 by thread T1:
      #0 strlen ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:386 (libtsan.so.2+0x77c0c)
      #1 strlen ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:378 (libtsan.so.2+0x77c0c)
      #2 g_strdup ../../../glib/gstrfuncs.c:362 (libglib-2.0.so.0+0xa4ac4)

    Previous write of size 8 at 0x7ffff20016c0 by thread T2:
      #0 malloc ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:647 (libtsan.so.2+0x471f0)
      #1 g_malloc ../../../glib/gmem.c:130 (libglib-2.0.so.0+0x7bb68)

    Location is heap block of size 20 at 0x7ffff20016c0 allocated by thread T2:
      #0 malloc ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:647 (libtsan.so.2+0x471f0)
      #1 g_malloc ../../../glib/gmem.c:130 (libglib-2.0.so.0+0x7bb68)

This appears to be a false positive in GLib, as explained at
https://gitlab.gnome.org/GNOME/glib/-/issues/1672#note_1831968
In short, a call to fstat fails under TSan and GLib's g_sterror will
intern the error message, which will be reused by other threads.

Since upstream appears to be aware that GLib doesn't play nicely with
TSan, suppress everything coming from the library instead of
maintaining a fine grained list.

Reported at
https://buildd.debian.org/status/fetch.php?pkg=notmuch&arch=ppc64el&ver=0.38%7Erc0-1&stamp=1692959868&raw=0
---
 test/T810-tsan.suppressions | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/test/T810-tsan.suppressions b/test/T810-tsan.suppressions
index dbd16a94..80dc062f 100644
--- a/test/T810-tsan.suppressions
+++ b/test/T810-tsan.suppressions
@@ -1,5 +1,3 @@
 # It's unclear how TSan-friendly GLib is:
 # https://gitlab.gnome.org/GNOME/glib/-/issues/1672
-race:g_rw_lock_reader_lock
-# https://gitlab.gnome.org/GNOME/glib/-/issues/1952
-race:g_slice_alloc0
+called_from_lib:libglib*.so
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: