• Home
  • Search
  • Using model checking to find serious file system errors
  • Open Access IconOpen Access
  • Cite Icon319
  • https://doi.org/10.1145/1189256.1189259Copy DOI Icon

Using model checking to find serious file system errors

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

This article shows how to use model checking to find serious errors in file systems. Model checking is a formal verification technique tuned for finding corner-case errors by comprehensively exploring the state spaces defined by a system. File systems have two dynamics that make them attractive for such an approach. First, their errors are some of the most serious, since they can destroy persistent data and lead to unrecoverable corruption. Second, traditional testing needs an impractical, exponential number of test cases to check that the system will recover if it crashes at any point during execution. Model checking employs a variety of state-reducing techniques that allow it to explore such vast state spaces efficiently.We built a system, FiSC, for model checking file systems. We applied it to four widely-used, heavily-tested file systems: ext3, JFS, ReiserFS and XFS. We found serious bugs in all of them, 33 in total. Most have led to patches within a day of diagnosis. For each file system, FiSC found demonstrable events leading to the unrecoverable destruction of metadata and entire directories, including the file system root directory “/”.

Similar Papers
  • Conference Article
  • Citations7

An overview and application of model reduction techniques in formal verification

  • Feb 16, 1998
  • J Baumgartner +1
  • Research Article
  • Citations8

Model checking lattices: using and reasoning about information orders for abstraction

  • May 01, 1999
  • Logic Journal of IGPL
  • S Hazelhurst
  • Book Chapter
  • Citations45

Formal Verification for Nonlinear Analog Systems: Approaches to Model and Equivalence Checking

  • Jan 01, 2004
  • Walter Hartong +2
  • Research Article
  • Citations136

Model Checking Complete Requirements Specifications Using Abstraction

  • Jan 01, 1999
  • Automated Software Engineering
  • Ramesh Bharadwaj +1
  • Book Chapter
  • Citations41

A space-efficient on-the-fly algorithm for real-time model checking

  • Jan 01, 1996
  • Thomas A Henzinger +2
  • Conference Article
  • Citations5

Neural state classification for hybrid systems

  • Apr 15, 2019
  • Dung Phan +5
  • Research Article
  • Citations19

Formal modeling and verification of distributed failure detectors

  • Jan 01, 2011
  • Data Archiving and Networked Services (DANS)
  • Muhammad Atif
  • Book Chapter
  • Citations6

Identification of Effective Guidance Hints for Better Design Debugging by Formal Methods

  • Jan 01, 2019
  • V S Vineesh +2
  • Conference Article

Communication space reduction for formal verification of secure authentication protocols

  • Jun 21, 2001
  • Kyoil Kim +1
  • Conference Article
  • Citations20

A candid industrial evaluation of formal software verification using model checking

  • May 31, 2014
  • Matthew Bennion +1
  • Conference Article
  • Citations6

An electric fence for kernel buffers

  • Nov 11, 2005
  • Nikolai Joukov +3
  • Research Article
  • Citations36

A Comparative Study of Software Model Checkers as Unit Testing Tools: An Industrial Case Study

  • Mar 01, 2011
  • IEEE Transactions on Software Engineering
  • Moonzoo Kim +2
  • Conference Article
  • Citations24

Application of automated environment generation to commercial software

  • Jul 21, 2006
  • Oksana Tkachuk +1
  • Conference Article
  • Citations4

Smart Water Distribution System Communication Architecture Risk Analysis Using Formal Methods

  • Nov 24, 2020
  • Stefana Krivokuca +4
  • Research Article
  • Citations3

A template-based approach for the generation of abstractable and reducible models of featured networks

  • Sep 22, 2006
  • Computer Networks
  • A Miller +2
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.