Efficiently Detecting Concurrency Bugs in Persistent Memory Programs

被引:4
作者
Chen, Zhangyu [1 ]
Hua, Yu [1 ]
Zhang, Yongle [2 ]
Ding, Luochangqi [1 ]
机构
[1] Huazhong Univ Sci & Technol, Wuhan, Hubei, Peoples R China
[2] Purdue Univ, W Lafayette, IN 47907 USA
来源
ASPLOS '22: PROCEEDINGS OF THE 27TH ACM INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS | 2022年
基金
中国国家自然科学基金;
关键词
Persistent Memory; Crash Consistency; Testing; Debugging; Concurrency;
D O I
10.1145/3503222.3507755
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Due to the salient DRAM-comparable performance, TB-scale capacity, and non-volatility, persistent memory (PM) provides new opportunities for large-scale in-memory computing with instant crash recovery. However, programming PM systems is error-prone due to the existence of crash-consistency bugs, which are challenging to diagnose especially with concurrent programming widely adopted in PM applications to exploit hardware parallelism. Existing bug detection tools for DRAM-based concurrency issues cannot detect PM crash-consistency bugs because they are oblivious to PM operations and PM consistency. On the other hand, existing PM-specific debugging tools only focus on sequential PM programs and cannot effectively detect crash-consistency issues hidden in concurrent executions. In order to effectively detect crash-consistency bugs that only manifest in concurrent executions, we propose PMRace, the first PM-specific concurrency bug detection tool. We identify and define two new types of concurrent crash-consistency bugs: PM Inter-thread Inconsistency and PM Synchronization Inconsistency. In particular, PMRace adopts PM-aware and coverage-guided fuzz testing to explore PM program executions. For PM Inter-thread Inconsistency, which denotes the data inconsistency hidden in thread inter-leavings, PMRace performs PM-aware interleaving exploration and thread scheduling to drive the execution towards executions that reveal such inconsistencies. For PM Synchronization Inconsistency between persisted synchronization variables and program data, PMRace identifies the inconsistency during interleaving exploration. The post-failure validation reduces the false positives that come from custom crash recovery mechanisms. PMRace has found 14 bugs (10 new bugs) in real-world concurrent PM systems including PM-version memcached.
引用
收藏
页码:873 / 887
页数:15
相关论文
共 70 条
  • [61] KRACE: Data Race Fuzzing for Kernel File Systems
    Xu, Meng
    Kashyap, Sanidhya
    Zhao, Hanqing
    Kim, Taesoo
    [J]. 2020 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2020), 2020, : 1643 - 1660
  • [62] Fuzzing File Systems via Two-Dimensional Input Space Exploration
    Xu, Wen
    Moon, Hyungon
    Kashyap, Sanidhya
    Tseng, Po-Ning
    Kim, Taesoo
    [J]. 2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2019), 2019, : 818 - 834
  • [63] Clobber-NVM: Log Less, Re-execute More
    Xu, Yi
    Izraelevitz, Joseph
    Swanson, Steven
    [J]. ASPLOS XXVI: TWENTY-SIXTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, 2021, : 346 - 359
  • [64] Yang J, 2020, PROCEEDINGS OF THE 18TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, P169
  • [65] Yu J, 2009, CONF PROC INT SYMP C, P325, DOI 10.1145/1555815.1555796
  • [66] Zalewski M., 2017, AM FUZZY LOP
  • [67] AI: A Lightweight System for Tolerating Concurrency Bugs
    Zhang, Mingxing
    Wu, Yongwei
    Lu, Shan
    Qi, Shanxiang
    Ren, Jinglei
    Zheng, Weimin
    [J]. 22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, : 330 - 340
  • [68] Zhang W, 2020, PROCEEDINGS OF THE 14TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION (OSDI '20), P1029
  • [69] Zuo PF, 2018, PROCEEDINGS OF THE 13TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, P461
  • [70] Zuo Pengfei, 2018, LEVEL HASHING PROJEC