Lightweight File System Crash-consistency Checking with Differential Fuzzing
https://doi.org/10.15514/ISPRAS-2026-38(1)-7
Abstract
File systems are critical operating system components, impacting the performance, reliability, and security of the entire computing system. One of the key properties of modern file systems is their ability to ensure data consistency. If a file system fails to restore persisted data after a crash, this can lead to corruption of the application state, loss of integrity, or even complete data loss. This paper proposes a lightweight approach for detecting data inconsistency errors caused by unexpected crashes. The approach is based on modeling such crashes and integrating this behavior into a file system error detection system DIFFuzzer based on differential fuzzing. Experimental testing of the updated tool on several well-known file systems demonstrated the effectiveness of the approach. Several crash-consistency errors were discovered during the experiments, confirmed by the file system authors.
About the Authors
Vyacheslav Maksimovich KOVALEVSKYRussian Federation
Postgraduate student and engineer at the Institute of Applied Computer Science of the ITMO University. Research interests: dynamic and static software analysis, fuzzing.
Valeriy Vladimirovich KECHIN
Russian Federation
Postgraduate student and engineer at the Institute of Applied Computer Science of the ITMO University. Research interests: dynamic and static software analysis, fuzzing.
Alexander Sergeevich YANIN
Russian Federation
Graduate master student and engineer at the Institute of Applied Computer Science of the ITMO University. Research interests: dynamic and static software analysis, fuzzing.
Vladimir Mikhailovich ITSYKSON
Russian Federation
Cand. Sci. (Tech.), associate professor of the Institute of Applied Computer Science of the ITMO University. Research interests: static and dynamic software analysis, software verification, methods for detecting defects in source code, methods for automating software testing.
References
1. Ext4 data loss. Ubuntu repository. [Online]. Available at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781, accessed: 2025-10-31.
2. IEEE/Open Group standard for information technology–portable operating system interface (POSIX™) base specifications, issue 8. IEEE/Open Group Std 1003.1-2024 (Revision of IEEE Std 1003.1-2017), 2024, pp. 1-4107.
3. Böhme M., Cadar C., Roychoudhury A. Fuzzing: Challenges and reflections. IEEE Software, 2020, vol. 38, issue 3, pp. 79-86. [Online]. DOI: 10.1109/MS.2020.3016773.
4. Kovalevsky V.M., Kechin V.V., Itsykson V.M. DIFFuzzer: Detecting File System Errors with Differential Grey-box Fuzzing. Trudy ISP RAN/Proc. ISP RAS, 2025, vol. 37, issue 4-2, pp. 31-46. [Online]. DOI: 10.15514/ISPRAS-2025-37(4)-17.
5. Mohan J., Martinez A., Ponnapalli S., Raju P., Chidambaram V. CrashMonkey and ACE: Systematically testing file-system crash consistency. ACM Trans. Storage, 2019, vol. 15, issue 2. [Online]. DOI: 10.1145/3320275.
6. ISO/IEC 25010:2023, Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Product quality model. ISO/IEC JTC 1/SC 7, 2023, pp. 1-22. [Online]. Available at: https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-2:v1:en, accessed: 03.02.2026.
7. open(2) – Linux manual page. The Linux Foundation. [Online]. Available at: https://man7.org/linux/man-pages/man2/open.2.html, accessed: 31.10.2025.
8. Bornholt J. et al. Specifying and checking file system crash-consistency models. Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, 2016, pp. 83-98. [Online]. DOI: 10.1145/2872362.2872406.
9. (2015) Syzkaller: coverage-guided kernel fuzzer. Google. [Online]. Available at: https://github.com/google/syzkaller, accessed: 31.10.2025.
10. Schumilo S., Aschermann C., Gawlik R., Schinzel S., and Holz T. kAFL: Hardware-Assisted feedback fuzzing for OS kernels. 26th USENIX Security Symposium (USENIX Security 17), 2017, pp. 167-182. [Online]. Available at: https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/schumilo, accessed: 03.02.2026.
11. Izraelevitz J. et al. Basic performance measurements of the intel optane DC persistent memory module. arXiv preprint arXiv:1903.05714, 2019. [Online]. DOI: 10.48550/arXiv.1903.05714.
12. Yang J. et al. An empirical guide to the behavior and use of scalable persistent memory. 18th USENIX Conference on File and Storage Technologies (FAST 20), 2020, pp. 169-182. [Online]. Available at: https://www.usenix.org/conference/fast20/presentation/yang, accessed: 03.02.2026.
13. LeBlanc H. et al. Chipmunk: Investigating crash-consistency in persistent-memory file systems. Proceedings of the Eighteenth European Conference on Computer Systems, 2023, pp. 718-733. [Online]. DOI: 10.1145/3552326.3567498.
14. Kalbfleisch S., Werling L., Bellosa F. Vinter: Automatic Non-Volatile Memory Crash Consistency Testing for Full Systems. 2022 USENIX Annual Technical Conference (USENIX ATC 22), 2022, pp. 933-950. [Online]. Available at: https://www.usenix.org/conference/atc22/presentation/werling, accessed: 03.02.2026.
15. Jiao B., Goel A., Wang A.I.A. Silhouette: Leveraging Consistency Mechanisms to Detect Bugs in Persistent Memory-Based File Systems. 23rd USENIX Conference on File and Storage Technologies (FAST 25), 2025, pp. 407-423. [Online]. Available at: https://www.usenix.org/conference/fast25/presentation/jiao, accessed: 03.02.2026.
16. Ridge T. et al. SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems. Proceedings of the 25th Symposium on Operating Systems Principles, 2015, pp. 38-53. [Online]. DOI: 10.1145/2815400.2815411.
17. Chen D. et al. Testing file system implementations on layered models. Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, 2020, pp. 1483-1495. [Online]. DOI: 10.1145/3377811.3380350.
18. Kim S. et al. Finding semantic bugs in file systems with an extensible fuzzing framework. Proceedings of the 27th ACM Symposium on Operating Systems Principles, 2019, pp. 147-161. [Online]. DOI: 10.1145/3341301.3359662.
19. Liu J. et al. SnapCC: Effective file system consistency testing using systematic state exploration. ACM Transactions on Software Engineering and Methodology, 2025, vol. 34, issue 8. [Online]. DOI: 10.1145/3718738.
20. Symlink entry is not persisted after rename if system crashes, accessed: 2025-10-31. [Online]. Available at: https://lore.kernel.org/linux-btrfs/ac949c74-90c2-4b9a-b7fd-1ffc5c3175c7@gmail.com/, accessed: 03.02.2026.
21. Directory is not persisted after writing to the file within directory if system crashes [Online]. Available at: https://lore.kernel.org/linux-btrfs/03c5d7ec-5b3d-49d1-95bc-8970a7f82d87@gmail.com/, accessed: 31.10.2025.
22. File system corruption after renaming directory and creating a new file with same name if system crashes. [Online]. Available at: https://lore.kernel.org/linux-btrfs/7bbc9419-5c56-450a-b5a0-efeae7457113@gmail.com/, accessed: 15.12.2025.
23. Directory is not persisted after creating 100s of files inside, writing to another file and renaming it if system crashes. [Online]. Available at: https://lore.kernel.org/linux-btrfs/84c4e713-85d6-42b9-8dcf-0722ed26cb05@gmail.com/, accessed: 15.12.2025.
24. Increased reports since 6.15.3 of corruption within the log tree. [Online]. Available at: https://lore.kernel.org/linux-btrfs/fce139db-4458-4788-bb97-c29acf6cb1df@cachyos.org/, accessed: 31.10.2025.
25. iomap: Fix broken data integrity guarantees for O_SYNC writes. [Online]. Available at: https://lore.kernel.org/all/20250730102840.20470-2-jack@suse.cz/, accessed: 31.10.2025.
26. Fedora KDE no longer booting, likely filesystem (BTRFS) corruption. The Fedora Project. [Online]. Available at: https://discussion.fedoraproject.org/t/fedora-kde-no-longer-booting-likely-filesystem-btrfs-corruption/157232, accessed: 31.10.2025.
Review
For citations:
KOVALEVSKY V.M., KECHIN V.V., YANIN A.S., ITSYKSON V.M. Lightweight File System Crash-consistency Checking with Differential Fuzzing. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2026;38(1):79-92. https://doi.org/10.15514/ISPRAS-2026-38(1)-7






