Finding Complex Concurrency Bugs in Large Multi-Threaded Applications

被引:0
|
作者
Fonseca, Pedro
Li, Cheng
Rodrigues, Rodrigo
机构
关键词
Concurrency bugs; Latent bugs; Linearizability; Semantic bugs; LINEARIZABILITY; PROGRAMS;
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Parallel software is increasingly necessary to take advantage of multi-core architectures, but it is also prone to concurrency bugs which are particularly hard to avoid, find, and fix, since their occurrence depends on specific thread interleavings. In this paper we propose a concurrency bug detector that automatically identifies when an execution of a program triggers a concurrency bug. Unlike previous concurrency bug detectors, we are able to find two particularly hard classes of bugs. The first are bugs that manifest themselves by subtle violation of application semantics, such as returning an incorrect result. The second are latent bugs, which silently corrupt internal data structures, and are especially hard to detect because when these bugs are triggered they do not become immediately visible. PIKE detects these concurrency bugs by checking both the output and the internal state of the application for linearizability at the level of user requests. This paper presents this technique for finding concurrency bugs, its application in the context of a testing tool that systematically searches for such problems, and our experience in applying our approach to MySQL, a large-scale complex multi-threaded application. We were able to find several concurrency bugs in a stable version of the application, including subtle violations of application semantics, latent bugs, and incorrect error replies.
引用
收藏
页码:215 / 228
页数:14
相关论文
共 50 条
  • [21] An efficient multi-threaded memory allocator for PDES applications
    Li, Tianlin
    Yao, Yiping
    Tang, Wenjie
    Zhu, Feng
    Lin, Zhongwei
    SIMULATION MODELLING PRACTICE AND THEORY, 2020, 100
  • [22] Multi-Threaded Actors
    Azadbakht, Keyvan
    de Boer, Frank S.
    Serbanescu, Vlad
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (223): : 51 - 66
  • [23] A scalable architecture for multi-threaded JAVA']JAVA applications
    Mrva, M
    Buchenrieder, K
    Kress, R
    DESIGN, AUTOMATION AND TEST IN EUROPE, PROCEEDINGS, 1998, : 868 - 874
  • [24] On multi-threaded paging
    Feuerstein, E
    de Loma, AS
    ALGORITHMS AND COMPUTATION, 1996, 1178 : 417 - 426
  • [25] Dynamic Cache Contention Detection in Multi-threaded Applications
    Zhao, Qin
    Koh, David
    Raza, Syed
    Bruening, Derek
    Wong, Weng-Fai
    Amarasinghe, Saman
    ACM SIGPLAN NOTICES, 2011, 46 (07) : 27 - 37
  • [26] An Offline Demand Estimation Method for Multi-Threaded Applications
    Perez, Juan F.
    Pacheco-Sanchez, Sergio
    Casale, Giuliano
    2013 IEEE 21ST INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS & SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS 2013), 2013, : 21 - +
  • [27] Workshop on multi-threaded architectures and applications-MTAAP
    Derose, Luiz, 1600, IEEE Computer Society
  • [28] Bandwidth based performance optimization of Multi-threaded applications
    Manakkadu, Sheheeda
    Dutta, Sourav
    2014 SIXTH INTERNATIONAL SYMPOSIUM ON PARALLEL ARCHITECTURES, ALGORITHMS AND PROGRAMMING (PAAP), 2014, : 118 - 122
  • [29] Performance Evaluation of Virtualization Tools in Multi-Threaded Applications
    Sabolski, Ivan
    Leventic, Hrvoje
    Galic, Irena
    INTERNATIONAL JOURNAL OF ELECTRICAL AND COMPUTER ENGINEERING SYSTEMS, 2014, 5 (02) : 57 - 62
  • [30] Decoupling contention with VRB mechanism for multi-threaded applications
    Gao, Ke
    Fan, Dongrui
    Liu, Zhiyong
    Jisuanji Yanjiu yu Fazhan/Computer Research and Development, 2015, 52 (11): : 2577 - 2588