RACERD: Compositional Static Race Detection

被引:45
|
作者
Blackshear, Sam [1 ]
Gorogiannis, Nikos [2 ,3 ]
O'Hearn, Peter W. [2 ,4 ]
Sergey, Ilya [4 ,5 ]
机构
[1] Facebook, Menlo Pk, CA 94025 USA
[2] Facebook, London, England
[3] Middlesex Univ London, London, England
[4] UCL, London, England
[5] Yale NUS Coll, Singapore, Singapore
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2018年 / 2卷 / 02期
关键词
Concurrency; Static Analysis; Race Freedom;
D O I
10.1145/3276514
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Automatic static detection of data races is one of the most basic problems in reasoning about concurrency. We present RACERD-a static program analysis for detecting data races in Java programs which is fast, can scale to large code, and has proven effective in an industrial software engineering scenario. To our knowledge, RACERD is the first inter-procedural, compositional data race detector which has been empirically shown to have non-trivial precision and impact. Due to its compositionality, it can analyze code changes quickly, and this allows it to perform continuous reasoning about a large, rapidly changing codebase as part of deployment within a continuous integration ecosystem. In contrast to previous static race detectors, its design favors reporting high-confidence bugs over ensuring their absence. RACERD has been in deployment for over a year at Facebook, where it has flagged over 2500 issues that have been fixed by developers before reaching production. It has been important in enabling the development of new code as well as fixing old code: it helped support the conversion of part of the main Facebook Android app from a single-threaded to a multi-threaded architecture. In this paper we describe RACERD's design, implementation, deployment and impact.
引用
收藏
页数:28
相关论文
共 50 条
  • [1] Effective static race detection for Java
    Computer Science Department, Stanford University, United States
    Proc ACM SIGPLAN Conf Program Lang Des Implementation PLDI, (308-319):
  • [2] Static Detection of Race Conditions in Erlang
    Christakis, Maria
    Sagonas, Konstantinos
    PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES, PROCEEDINGS, 2010, 5937 : 119 - 133
  • [3] Static Race Detection for Periodic Programs
    Suresh, Varsha P.
    Pai, Rekha
    D'Souza, Deepak
    D'Souza, Meenakshi
    Chakrabarti, Sujit Kumar
    PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2022, 2022, 13240 : 290 - 316
  • [4] Conditional must not aliasing for static race detection
    Naik, Mayur
    Aiken, Alex
    ACM SIGPLAN NOTICES, 2007, 42 (01) : 327 - 338
  • [5] Effective static race detection for Java']Java
    Naik, Mayur
    Aiken, Alex
    Whaley, John
    ACM SIGPLAN NOTICES, 2006, 41 (06) : 308 - 319
  • [6] Conditional Must Not Aliasing for Static Race Detection
    Naik, Mayur
    Aiken, Alex
    CONFERENCE RECORD OF POPL 2007: THE 34TH ACM SIGPLAN SIGACT SYMPOSIUM ON PRINCIPLES OF PROGAMMING LANGUAGES, 2007, : 327 - 338
  • [7] Accurate Static Data Race Detection for C
    Sales, Emerson
    Inverso, Omar
    Tuosto, Emilio
    FORMAL METHODS, PT I, FM 2024, 2025, 14933 : 443 - 462
  • [8] LOCKSMITH: Practical Static Race Detection for C
    Pratikakis, Polyvios
    Foster, Jeffrey S.
    Hicks, Michael
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2011, 33 (01):
  • [9] BIGFOOT: Static Check Placement for Dynamic Race Detection
    Rhodes, Dustin
    Flanagan, Cormac
    Freund, Stephen N.
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 141 - 156
  • [10] Static Data Race Detection via Lazy Sequentialization
    Fischer, Bernd
    Garbi, Giulio
    La Torre, Salvatore
    Parlato, Gennaro
    Schrammel, Peter
    NETWORKED SYSTEMS, NETYS 2024, 2024, 14783 : 124 - 141