Finding and Analyzing Crash-Consistency Bugs in Persistent-Memory File Systems

04/12/2022
by   Hayley LeBlanc, et al.
0

We present a study of crash-consistency bugs in persistent-memory (PM) file systems and analyze their implications for file-system design and testing crash consistency. We develop FlyTrap, a framework to test PM file systems for crash-consistency bugs. FlyTrap discovered 18 new bugs across four PM file systems; the bugs have been confirmed by developers and many have been already fixed. The discovered bugs have serious consequences such as breaking the atomicity of rename or making the file system unmountable. We present a detailed study of the bugs we found and discuss some important lessons from these observations. For instance, one of our findings is that many of the bugs are due to logic errors, rather than errors in using flushes or fences; this has important applications for future work on testing PM file systems. Another key finding is that many bugs arise from attempts to improve efficiency by performing metadata updates in-place and that recovery code that deals with rebuilding in-DRAM state is a significant source of bugs. These observations have important implications for designing and testing PM file systems. Our code is available at https://github.com/utsaslab/flytrap .

READ FULL TEXT

page 4

page 5

research
07/19/2023

An Analysis of Bugs In Persistent Memory Application

Over the years of challenges on detecting the crash consistency of non-v...
research
10/05/2018

Finding Crash-Consistency Bugs with Bounded Black-Box Crash Testing

We present a new approach to testing file-system crash consistency: boun...
research
01/11/2022

SnapFuzz: An Efficient Fuzzing Framework for Network Applications

In recent years, fuzz testing has benefited from increased computational...
research
06/22/2023

FLAG: Finding Line Anomalies (in code) with Generative AI

Code contains security and functional bugs. The process of identifying a...
research
12/13/2021

Bento and the Art of Repeated Research

Bento provides a new approach to developing file systems, with safety an...
research
05/04/2023

Distributed System Fuzzing

Grey-box fuzzing is the lightweight approach of choice for finding bugs ...
research
10/04/2019

Formula Transformers and Combinatorial Test Generators for Propositional Intuitionistic Theorem Provers

We develop combinatorial test generation algorithms for progressively mo...

Please sign up or login with your details

Forgot password? Click here to reset