
10/19/2017 · Sam Blackshear, Peter O'Hearn
What this post added
Introduced RacerD, an open-source static race detector for Java programs that operates without running the program. RacerD uses symbolic reasoning to identify data races, has been running in production for 10 months on Facebook's Android codebase, and has caught over 1000 multi-threading issues. The post details the challenges of concurrent programming at scale, the design decisions made for RacerD (compositionality, tracking lock/thread info, ownership analysis), and provides examples of its reasoning.