Sections:

Breadcrumb

No longer a prototype, RacerD is part of the Infer static analysis platform

Paul Krill Oct 23rd 2017

Facebook has begun offering broad access to RacerD, a tool intended to tackle the longstanding problem of race conditions in software.

RacerD had been available as a prototype, accessible in Facebook’s open source code base only through a series of backdoor options, said codeveloper Sam Blackshear, a Facebook research scientist. Now, the tool will run by default in Facebook’s open source Infer static analysis tool for bug detection. Initially, RacerD is available only for Java code. But plans call for expanding coverage to other languages, including C++.

With race conditions, overlapping processes trying to access the same data concurrently can cause conflicts in programs. These concurrency errors can be difficult to debug or even reproduce. “This has really been a hard problem” in computing for about 50 years, said Peter O’Hearn, a research scientist on the Infer team and co-author of RacerD.

RacerD was tested in production on Facebook’s News Feed application, where it stopped more than 1,000 bugs from making it into the production application, Facebook said. And RacerD let rogrammers could thousands of lines of code to accommodate concurrency.

Inspired by the theoretical foundation of concurrent separation logic, a mathematical theory developed by O’Hearn, RacerD offers new algorithmic techniques to code problems and potential consequences in systems before they run. Developers typically address detected race conditions by adding locks.

Accessible from Github via the Infer repository, Infer is offered under the BSD + Patents license, the same license that caused organizations such as the Apache Software Foundation to abandon Facebook’s React JavaScript library because of potential encumbrances of that license. In response to those objections, Facebook last month relicensed React under the more-palatable MIT license. Facebook is evaluating whether to change RacerD’s license as well.