skip to main content
10.1145/1542476.1542506acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Error propagation analysis for file systems

Published:15 June 2009Publication History

ABSTRACT

Unchecked errors are especially pernicious in operating system file management code. Transient or permanent hardware failures are inevitable, and error-management bugs at the file system layer can cause silent, unrecoverable data corruption. We propose an interprocedural static analysis that tracks errors as they propagate through file system code. Our implementation detects overwritten, out-of-scope, and unsaved unchecked errors. Analysis of four widely-used Linux file system implementations (CIFS, ext3, IBM JFS and ReiserFS), a relatively new file system implementation (ext4), and shared virtual file system (VFS) code uncovers 312 error propagation bugs. Our flow- and context-sensitive approach produces more precise results than related techniques while providing better diagnostic information, including possible execution paths that demonstrate each bug found.

References

  1. M. W. Bigrigg and J. J. Vos. The set-check-use methodology for detecting error propagation failures in I/O routines. In Workshop on Dependability Benchmarking, Washington, DC, June 2002.Google ScholarGoogle Scholar
  2. R. E. Bryant. Binary decision diagrams and beyond: enabling technologies for formal verification. In R. L. Rudell, editor, ICCAD, pages 236--243. IEEE Computer Society, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Callahan. The program summary graph and flow-sensitive interprocedural data flow analysis. In PLDI, pages 47--56, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Candea, M. Delgado, M. Chen, and A. Fox. Automatic failure-path inference: A generic introspection technique for Internet applications. In Proceedings of the The Third IEEE Workshop on Internet Applications (WIAPP '03), pages 132--141, San Jose, California, June 2003. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Dilger. Error propagation bugs in ext4. Personal communication, Nov. 2008.Google ScholarGoogle Scholar
  6. D. Evans. LCLint User's Guide. University of Virginia, May 2000.Google ScholarGoogle Scholar
  7. C. A. Flanagan and M. Burrows. System and method for dynamically detecting unchecked error condition values in computer programs. United States Patent #6,378,081 B1, Apr. 2002.Google ScholarGoogle Scholar
  8. J. B. Goodenough. Structured exception handling. In POPL, pages 204--224, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Goradia. Dynamic impact analysis: A cost-effective technique to enforce error-propagation. In ISSTA, pages 171--181, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. D. Groce. Problem solved. Personal communication, Jan. 2009.Google ScholarGoogle Scholar
  11. H. S. Gunawi, C. Rubio-González, A. C. Arpaci-Dusseau, R. H. Arpaci-Dusseau, and B. Liblit. EIO: Error handling is occasionally correct. In 6th USENIX Conference on File and Storage Technologies (FAST '08), San Jose, California, Feb. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. J. Guo, J. H. Perkins, S. McCamant, and M. D. Ernst. Dynamic inference of abstract types. In L. L. Pollock and M. Pezzè, editors, ISSTA, pages 255--265. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Hiller, A. Jhumka, and N. Suri. An approach for analysing the propagation of data errors in software. In DSN, pages 161--172. IEEE Computer Society, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Hiller, A. Jhumka, and N. Suri. Propane: an environment for examining the propagation of errors in software. In ISSTA, pages 81--85, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Hiller, A. Jhumka, and N. Suri. Epic: Profiling the propagation and effect of data errors in software. IEEE Trans. Computers, 53(5): 512--530, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Jhumka, M. Hiller, and N. Suri. Assessing inter-modular error propagation in distributed software. In SRDS, pages 152--161. IEEE Computer Society, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  17. A. Johansson and N. Suri. Error propagation profiling of operating systems. In DSN, pages 86--95. IEEE Computer Society, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. N. Kidd, T. Reps, and A. Lal. WALi: A C++ library for weighted pushdown systems. http://www.cs.wisc.edu/wpis/wpds/download.php, 2008.Google ScholarGoogle Scholar
  19. A. Lal, T.W. Reps, and G. Balakrishnan. Extended weighted pushdown systems. In K. Etessami and S. K. Rajamani, editors, CAV, volume 3576 of Lecture Notes in Computer Science, pages 434--448. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Lal, N. Kidd, T.W. Reps, and T. Touili. Abstract error projection. In H. R. Nielson and G. Filé, editors, SAS, volume 4634 of Lecture Notes in Computer Science, pages 200--217. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Lal, T. Touili, N. Kidd, and T. Reps. Interprocedural analysis of concurrent programs under a context bound. Technical Report 1598, University of Wisconsin--Madison, July 2007.Google ScholarGoogle Scholar
  22. J. Lind-Nielsen. BuDDy -- A Binary Decision Diagram Package. http://sourceforge.net/projects/buddy, 2004.Google ScholarGoogle Scholar
  23. B. Liskov. A history of CLU. In HOPL Preprints, pages 133--147, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. G. C. Necula, S. McPeak, S. P. Rahul, and W. Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. In R. N. Horspool, editor, CC, volume 2304 of Lecture Notes in Computer Science, pages 213--228. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. T. W. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. Sci.Comput. Program., 58(1--2):206--263, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. P. Sacramento, B. Cabral, and P. Marques. Unchecked exceptions: Can the programmer be trusted to document exceptions? In Second International Conference on Innovative Views of .NET Technologies, Florianópolis, Brazil, Oct. 2006. Microsoft.Google ScholarGoogle Scholar
  27. S. Schwoon. Model-Checking Pushdown Systems. PhD thesis, Technical Univ. of Munich, Munich, Germany, July 2002.Google ScholarGoogle Scholar
  28. K. G. Shin and T.-H. Lin. Modeling and measurement of error propagation in a multimodule computing system. IEEE Trans. Computers, 37(9):1053--1066, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Sun Microsystems, Inc. Unchecked exceptions -- the controversy. http://java.sun.com/docs/books/tutorial/essential/exceptions/runtime.html, Aug. 2007.Google ScholarGoogle Scholar
  30. M. van Dooren and E. Steegmans. Combining the robustness of checked exceptions with the flexibility of unchecked exceptions using anchored exception declarations. In R. Johnson and R. P. Gabriel, editors, OOPSLA, pages 455--471. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. N. Wegman and F. K. Zadeck. Constant propagation with conditional branches. In POPL, pages 291--299, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. Yang, P. Twohey, D. R. Engler, and M. Musuvathi. Using model checking to find serious file system errors. ACM Trans. Comput. Syst., 24(4):393--423, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Error propagation analysis for file systems

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in
                  • Published in

                    cover image ACM Conferences
                    PLDI '09: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation
                    June 2009
                    492 pages
                    ISBN:9781605583921
                    DOI:10.1145/1542476
                    • cover image ACM SIGPLAN Notices
                      ACM SIGPLAN Notices  Volume 44, Issue 6
                      PLDI '09
                      June 2009
                      478 pages
                      ISSN:0362-1340
                      EISSN:1558-1160
                      DOI:10.1145/1543135
                      Issue’s Table of Contents

                    Copyright © 2009 ACM

                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 15 June 2009

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • research-article

                    Acceptance Rates

                    Overall Acceptance Rate406of2,067submissions,20%

                    Upcoming Conference

                    PLDI '24

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader