The false positive on TSAN is so low that it’s worth fixing any false positives although concluding it’s a false positive seems so hard that I always have a nagging feeling as to whether I actually did fix it

"Data race which doesn't seem to modify the data" is actually often not a false positive, they're called "Benign data races" and well, go read the literature, it's often difficult to be sure they're truly "benign" and if there's a subtle reason why they aren't that's now a crazy hard to spot bug in your program.

So yeah, just fix 'em. Most of them you dodged a bullet, and even when you didn't it will now be easier for the next person to reason about the software.

Yeah in fact there is no such thing as a benign data race -- https://web.archive.org/web/20181022150257/https://software....

I agree. That doesn’t mean that TSAN doesn’t have false positives even though they may be rare.

Sure, but nobody is gonna rely on TSAN to determine data races in their code :)