# ThreadSanitizer suppressions — third-party noise only. # # The system libgrpc/libprotobuf are NOT built with TSan instrumentation, so # TSan cannot observe their internal synchronization and reports false # positives entirely inside the library (e.g. Epoll1Poller::DoEpollWait's # event-engine wakeup path). Suppressing by library keeps every frame of OUR # code fully checked: a real race in secsgem/daemon code still has our frames # in the stack and is NOT suppressed by these rules. # # Do not add suppressions for secsgem code here. Fix the race instead. # # libabsl_*: gRPC's absl Mutex keeps deadlock-detection bookkeeping # (GraphCycles) whose synchronization TSan cannot see in the uninstrumented # system build — every report's racing accesses sit fully inside # libabsl_graphcycles_internal/libabsl_malloc_internal frames. race:libgrpc.so race:libgrpc++.so race:libgpr.so race:libabsl_ called_from_lib:libgrpc.so