Canary: Practical Static Detection of Inter-thread Value-Flow Bugs

被引:12
|
作者
Cai, Yuandao [1 ]
Yao, Peisen [1 ]
Zhang, Charles [1 ]
机构
[1] Hong Kong Univ Sci & Technol, Hong Kong, Peoples R China
来源
PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21) | 2021年
关键词
Concurrency; static analysis; interference dependence; concurrency bugs detection; MULTITHREADED PROGRAMS; PRECISE; LINES;
D O I
10.1145/3453483.3454099
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Concurrent programs are still prone to bugs arising from the subtle interleavings of threads. Traditional static analysis for concurrent programs, such as data-flow analysis and symbolic execution, has to explicitly explore redundant control states, leading to prohibitive computational complexity. This paper presents a value-flow analysis framework for concurrent programs called Canary that is practical to statically find diversified inter-thread value-flow bugs. Our work is the first to convert the concurrency bug detection to a source-sink reachability problem, effectively reducing redundant thread interleavings. Specifically, we propose a scalable thread-modular algorithm to capture data and interference dependence in a value-flow graph. The relevant edges of value flows are annotated with execution constraints as guards to describe the conditions of value flows. Canary then traverses the graph to detect concurrency defects via tracking the source-sink properties and solving the aggregated guards of value flows with an SMT solver to decide the realizability of interleaving executions. Experiments show that Canary is precise, scalable, and practical, detecting over eighteen previously unknown concurrency bugs in large, widely-used software systems with low false positives.
引用
收藏
页码:1126 / 1140
页数:15
相关论文
共 12 条
  • [1] Improving Speculation Accuracy with Inter-thread Fetching Value Prediction
    Xu, Fan
    Shen, Li
    Wang, Zhiying
    Guo, Hui
    Su, Bo
    Chen, Wei
    ALGORITHMS AND ARCHITECTURES FOR PARALLEL PROCESSING, ICA3PP 2014, PT II, 2014, 8631 : 245 - 258
  • [2] Thread-sensitive pointer analysis for. inter-thread dataflow detection
    Qian, Ju
    Xu, Baowen
    11TH IEEE INTERNATIONAL WORKSHOP ON FUTURE TRENDS OF DISTRIBUTED COMPUTING SYSTEMS, PROCEEDINGS, 2007, : 157 - 163
  • [3] Snowboard: Finding Kernel Concurrency Bugs through Systematic Inter-thread Communication Analysis
    Gong, Sishuai
    Altinbuken, Deniz
    Fonseca, Pedro
    Maniatis, Petros
    PROCEEDINGS OF THE 28TH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, SOSP 2021, 2021, : 66 - 83
  • [4] Practical memory leak detection using guarded value-flow analysis
    Cherem, Sigmund
    Princehouse, Lonnie
    Rugina, Radu
    ACM SIGPLAN NOTICES, 2007, 42 (06) : 480 - 491
  • [5] Practical Memory Leak Detection using Guarded Value-Flow Analysis
    Cherem, Sigmund
    Princehouse, Lonnie
    Rugina, Radu
    PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, : 480 - 491
  • [6] SVF: Interprocedural Static Value-Flow Analysis in LLVM
    Sui, Yulei
    Xue, Jingling
    PROCEEDINGS OF THE 25TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION (CC 2016), 2016, : 265 - 266
  • [8] VALAR: Streamlining Alarm Ranking in Static Analysis with Value-Flow Assisted Active Learning
    Liu, Pengcheng
    Lu, Yifei
    Yang, Wenhua
    Pan, Minxue
    2023 38TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE, 2023, : 1940 - 1951
  • [9] Symbolic Value-Flow Static Analysis: Deep, Precise, Complete Modeling of Ethereum Smart Contracts
    Smaragdakis, Yannis
    Grech, Neville
    Lagouvardos, Sifis
    Triantafyllou, Konstantinos
    Tsatiris, Ilias
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (OOPSLA):
  • [10] Improving the Static Real-Time Scheduling on Multicore Processors by Reducing Worst-Case Inter-thread Cache Interferences
    Ding, Yiqiang
    Zhang, Wei
    PROCEEDINGS OF THE 48TH ANNUAL SOUTHEAST REGIONAL CONFERENCE (ACM SE 10), 2010, : 474 - 477