DURINN: Adversarial Memory and Thread Interleaving for Detecting Durable Linearizability Bugs
Xinwei Fu, Dongyoon Lee, Changwoo Min
Abstract
Non-volatile memory (NVM) has promoted the development of concurrent crash-consistent data structures, which serve as the backbone of various in-memory persistent applications. Durable linearizability defines the correct semantics of NVM-backed concurrent crash-consistent data structures, in which linearizability is preserved even in the presence of a crash event. However, designing and implementing a correct durable linearizable data structure remain challenging as developers are to manually control durability (persistence) using low-level cache flush and store fence instructions.
We present DURINN, to the best of our knowledge, the first durable linearizability checker for concurrent NVM data structures. DURINN is based on the novel observation on the gap between linearizability point -when the changes to a concurrent data structure become publicly visible -and durability point -when the changes become persistent. From the detailed gap analysis, we derive three durable linearizability bug patterns that render a linearizable data structure not durable linearizable. To tame the huge NVM states and thread interleaving test space, DURINN statically identifies likely-linearization points and actively constructs adversarial NVM state and thread interleaving settings that increase the likelihood of revealing durable linearizability bugs. DURINN effectively detected 27 (15 new) durable linearizability bugs from 12 concurrent NVM data structures without a test space explosion problem.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext c8bee298-7c2a-4eb4-a9ff-0580ea87cbeeCited by top-tier papers10
- Halfmoon: Log-Optimal Fault-Tolerant Stateful Serverless ComputingSheng Qi, Xuanzhe Liu, Xin JinSOSP 2023 · 16 citations
- TENET: Memory Safe and Fault Tolerant Persistent Transactional MemoryMadhava Krishnan Ramanathan, Diyu Zhou, Wook-Hee Kim, Sudarsun Kannan et al.FAST 2023 · 12 citations
- Metis: File System Model Checking via Versatile Input and State ExplorationYifei Liu, Manish Adkar, Gerard J. Holzmann, Geoff Kuenning et al.FAST 2024 · 6 citations
- Mumak: Efficient and Black-Box Bug Detection for Persistent MemoryJoão Gonçalves, Miguel Matos, Rodrigo RodriguesEuroSys 2023 · 5 citations
- Constraint Based Program Repair for Persistent Memory BugsZunchen Huang, Chao WangICSE 2024 · 3 citations
Builds on7
- Fuzzing File Systems via Two-Dimensional Input Space ExplorationWen Xu, Hyungon Moon, Sanidhya Kashyap, Po-Ning Tseng et al.S&P 2019 · 117 citations
- PACTree: A High Performance Persistent Range Index Using PAC GuidelinesWook-Hee Kim, Madhava Krishnan Ramanathan, Xinwei Fu, Sanidhya Kashyap et al.SOSP 2021 · 61 citations
- Cross-Failure Bug Detection in Persistent Memory ProgramsSihang Liu, Korakit Seemakhupt, Yizhou Wei, Thomas F. Wenisch et al.ASPLOS 2020 · 60 citations
- NVTraverse: in NVRAM data structures, the destination is more important than the journeyMichal Friedman, Naama Ben-David, Yuanhao Wei, Guy E. Blelloch et al.PLDI 2020 · 52 citations
- AGAMOTTO: How Persistent is your Persistent Memory Application?Ian Neal, Ben Reeves, Ben Stoler, Andrew Quinn et al.OSDI 2020 · 43 citations
Related papers
- Efficiently detecting concurrency bugs in persistent memory programsZhangyu Chen, Yu Hua, Yongle Zhang, Luochangqi DingASPLOS 2022 · 11 citations
- Detectable recovery of lock-free data structuresHagit Attiya, Ohad Ben-Baruch, Panagiota Fatourou, Danny Hendler et al.PPoPP 2022 · 12 citations
- Memento: A Framework for Detectable Recoverability in Persistent MemoryKyeongmin Cho, Seungmin Jeon, Azalea Raad, Jeehoon KangPLDI 2023 · 4 citations
- Vinter: Automatic Non-Volatile Memory Crash Consistency Testing for Full SystemsSamuel Kalbfleisch, Lukas Werling, Frank BellosaUSENIX ATC 2022
- Witcher: Systematic Crash Consistency Testing for Non-Volatile Memory Key-Value StoresXinwei Fu, Wook-Hee Kim, Ajay Paddayuru Shreepathi, Mohannad Ismail et al.SOSP 2021 · 17 citations
