• 更多栏目

    胡燕

    • 副教授       硕士生导师
    • 性别:男
    • 毕业院校:中国科学技术大学
    • 学位:博士
    • 所在单位:软件学院、国际信息与软件学院
    • 电子邮箱:huyan@dlut.edu.cn

    访问量:

    开通时间:..

    最后更新时间:..

    PEDAL: a dynamic analysis tool for efficient concurrency bug reproduction in big data environment

    点击次数:

    论文类型:期刊论文

    发表时间:2016-03-01

    发表刊物:CLUSTER COMPUTING-THE JOURNAL OF NETWORKS SOFTWARE TOOLS AND APPLICATIONS

    收录刊物:SCIE、EI

    卷号:19

    期号:1

    页面范围:153-166

    ISSN号:1386-7857

    关键字:Concurrency analysis; Profiling; Dynamic analysis; Bug reproduction

    摘要:Concurrency bugs usually manifest under very rare conditions, and reproducing such bugs can be a challenging task. To reproduce concurrency bugs with a given input, one would have to explore the vast interleaving space, searching for erroneous schedules. The challenges are compounded in a big data environment. This paper explores the topic of concurrency bug reproduction using runtime data. We approach the concurrency testing and bug reproduction problem differently from existing literature, by emphasizing on the preemptable synchronization points. In our approach, a light-weight profiler is implemented to monitor program runs, and collect synchronization points where thread scheduler could intervene and make scheduling decisions. Traces containing important synchronization API calls and shared memory accesses are recorded and analyzed. Based on the preemptable synchronization points, we build a reduced preemption set (RPS) to narrow down the search space for erroneous schedules. We implement an optimized preemption-bounded schedule search algorithm and an RPS directed search algorithm, in order to reproduce concurrency bugs more efficiently. Those schedule exploration algorithms are integrated into our prototype, Profile directed Event driven Dynamic AnaLysis (PEDAL). The runtime data consisting of synchronization points is used as a source of feedback for PEDAL. To demonstrate utility, we evaluate the performance of PEDAL against those of two systematic concurrency testing tools. The findings demonstrate that PEDAL can detect concurrency bugs more quickly with given inputs, and consuming less memory. To prove its scalability in a big data environment, we use PEDAL to analyze several real concurrency bugs in large scale multithread programs, namely: Apache, and MySQL.