Using model checking to find serious file system errors

被引:71
|
作者
Yang, Junfeng [1 ]
Twohey, Paul
Engler, Dawson
Musuvathi, Madanlal
机构
[1] Stanford Univ, Comp Syst Lab, Stanford, CA 94305 USA
[2] Microsoft Res, Redmond, WA 98052 USA
来源
ACM TRANSACTIONS ON COMPUTER SYSTEMS | 2006年 / 24卷 / 04期
关键词
reliability; verification; model checking; file system; journaling; crash; recovery;
D O I
10.1145/1189256.1189259
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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 "/".
引用
收藏
页码:393 / 423
页数:31
相关论文
共 50 条
  • [41] Evaluation of A Resilience Embedded System Using Probabilistic Model-Checking
    Fang, Ling
    Yamagata, Yoriyuki
    Oiwa, Yutaka
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2014, (150): : 35 - 49
  • [42] Conformance Testing for OSEK/VDX Operating System Using Model Checking
    Chen, Jiang
    Aoki, Toshiaki
    2011 18TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2011), 2011, : 274 - 281
  • [43] Using Model-Checking for Timing Verification in Industrial System Design
    Rioux, Laurent
    Henia, Rafik
    Sordon, Nicolas
    10TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS - ICSTW 2017, 2017, : 377 - 378
  • [44] Probabilistic verification of a biodiesel production system using statistical model checking
    Riley, D. D.
    Koutsoukos, X.
    MATHEMATICAL AND COMPUTER MODELLING OF DYNAMICAL SYSTEMS, 2014, 20 (05) : 452 - 469
  • [45] Verification system for transient response of analog circuits using model checking
    Dastidar, TR
    Chakrabarti, PP
    18TH INTERNATIONAL CONFERENCE ON VLSI DESIGN, PROCEEDINGS: POWER AWARE DESIGN OF VLSI SYSTEMS, 2005, : 195 - 200
  • [46] Model Checking of a Training System Using NuSMV for Humanoid Robot Soccer
    Kim, Yongho
    Gomez, Mauricio
    Goppert, James
    Matson, Eric T.
    ROBOT INTELLIGENCE TECHNOLOGY ANDAPPLICATIONS 3, 2015, 345 : 531 - 540
  • [47] Stepwise development and model checking of a distributed interlocking system using RAISE
    Geisler, S.
    Haxthausen, A. E.
    FORMAL ASPECTS OF COMPUTING, 2021, 33 (01) : 87 - 125
  • [48] Using process control charts to monitor dispensing and checking errors
    Campbell, GM
    Facchinetti, NJ
    AMERICAN JOURNAL OF HEALTH-SYSTEM PHARMACY, 1998, 55 (09) : 946 - 952
  • [49] Using artificial intelligence to find design errors in the engineering drawings
    Dzhusupova, Rimma
    Banotra, Richa
    Bosch, Jan
    Olsson, Helena Holmstrom
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2023, 35 (12)
  • [50] An integrated multimedia file system model
    Xiang, D
    Gu, J
    Yu, SS
    Zhou, JL
    Zheng, JH
    6TH WORLD MULTICONFERENCE ON SYSTEMICS, CYBERNETICS AND INFORMATICS, VOL XX, PROCEEDINGS EXTENSION, 2002, : 108 - 112