Metis: File System Model Checking via Versatile Input and State Exploration

被引:0
|
作者
Liu, Yifei [1 ]
Adkar, Manish [1 ]
Holzmann, Gerard [2 ]
Kuenning, Geoff [3 ]
Liu, Pei [1 ]
Smolka, Scott A. [1 ]
Su, Wei [1 ]
Zadok, Erez [1 ]
机构
[1] SUNY Stony Brook, Stony Brook, NY 11794 USA
[2] Nimble Res, Monrovia, CA USA
[3] Harvey Mudd Coll, Claremont, CA 91711 USA
关键词
D O I
暂无
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
We present Metis, a model-checking framework designed for versatile, thorough, yet configurable file system testing in the form of input and state exploration. It uses a nondeterministic loop and a weighting scheme to decide which system calls and their arguments to execute. Metis features a new abstract state representation for file-system states in support of efficient and effective state exploration. While exploring states, it compares the behavior of a file system under test against a reference file system and reports any discrepancies; it also provides support to investigate and reproduce any that are found. We also developed RefFS, a small, fast file system that serves as a reference, with special features designed to accelerate model checking and enhance bug reproducibility. Experimental results show that Metis can flexibly generate test inputs; also the rate at which it explores file-system states scales nearly linearly across multiple nodes. RefFS explores states 3-28x faster than other, more mature file systems. Metis aided the development of RefFS, reporting 11 bugs that we subsequently fixed. Metis further identified 12 bugs from five other file systems, five of which were confirmed and with one fixed and integrated into Linux.
引用
收藏
页码:123 / 140
页数:18
相关论文
共 50 条
  • [1] Metis: File System Model Checking via Versatile Input and State Exploration
    Liu, Yifei
    Adkar, Manish
    Holzmann, Gerard
    Kuenning, Geoff
    Liu, Pei
    Smolka, Scott A.
    Su, Wei
    Zadok, Erez
    PROCEEDINGS OF THE 22ND USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, FAST 24, 2024, : 123 - 140
  • [2] Model-Checking the Linux Virtual File System
    Galloway, Andy
    Luettgen, Gerald
    Muehlberg, Jan Tobias
    Siminiceanu, Radu I.
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2009, 5403 : 74 - +
  • [3] Fuzzing File Systems via Two-Dimensional Input Space Exploration
    Xu, Wen
    Moon, Hyungon
    Kashyap, Sanidhya
    Tseng, Po-Ning
    Kim, Taesoo
    2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2019), 2019, : 818 - 834
  • [4] Using model checking to find serious file system errors
    Yang, JF
    Twohey, P
    Engler, D
    Musuvathi, M
    USENIX ASSOCIATION PROCEEDINGS OF THE SIXTH SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION (OSDE '04), 2004, : 273 - 287
  • [5] Models and software model checking of a distributed file replication system
    Bjorner, Nikolaj
    Formal Methods and Hybrid Real-Time Systems, 2007, 4700 : 1 - 23
  • [6] Using model checking to find serious file system errors
    Yang, Junfeng
    Twohey, Paul
    Engler, Dawson
    Musuvathi, Madanlal
    ACM TRANSACTIONS ON COMPUTER SYSTEMS, 2006, 24 (04): : 393 - 423
  • [7] Response property checking via distributed state space exploration
    Bingham, Brad
    Greenstreet, Mark
    2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 15 - 22
  • [8] Symbolic state-space exploration meets statistical model checking
    Niehage, Mathis
    Remke, Anne
    PERFORMANCE EVALUATION, 2025, 167
  • [9] Efficient State Space Exploration: Interleaving Stateless and State-based Model Checking
    Ganai, Malay K.
    Wang, Chao
    Li, Weihong
    2010 IEEE AND ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN (ICCAD), 2010, : 786 - 793
  • [10] Effective Infinite-State Model Checking by Input Equivalence Class Partitioning
    Krafczyk, Niklas
    Peleska, Jan
    TESTING SOFTWARE AND SYSTEMS (ICTSS 2017), 2017, 10533 : 38 - 53