ThreadSanitizer übersieht Datenrennen jenseits von 255 Threads

Data races and the limits of ThreadSanitizer in C and Go

ThreadSanitizer (TSan) ist der De-facto-Standard zur Erkennung von Datenrennen in C, Go und anderen Sprachen. Doch die Architektur hat Grenzen: Bei mehr als 255 gleichzeitigen Threads – etwa in Go-Webservices mit einer Goroutine pro Anfrage – meldet TSan Rennen nicht mehr zuverlässig. Der Artikel erklärt die Grundlagen von Datenrennen, baut einen idealisierten C-Interpreter in Python mit FastTrack-Vektoruhren und zeigt, wie sync.Pool Rennen zwischen Goroutinen verdeckt, deren Objekte auf denselben Slot hashen.

TSan cannot reliably report data races while crossing a 255 total thread boundary.

Mehr von diesem Tag

2026-09-15