Skip to main content

FIDL: A Fault Injection Description Language for Compiler-Based SFI Tools

  • Conference paper
  • First Online:
Book cover Computer Safety, Reliability, and Security (SAFECOMP 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9922))

Included in the following conference series:

Abstract

Software Fault Injection (SFI) techniques play a pivotal role in evaluating the dependability properties of a software system. Evaluating the dependability of software system against multiple fault scenarios is challenging, due to the combinatorial explosion and the advent of new fault models. These necessitate SFI tools that are programmable and easily extensible. This paper proposes FIDL, which stands for fault injection description language, which allows compiler-based fault injection tools to be extended with new fault models. FIDL is an Aspect-Oriented Programming language that dynamically weaves the fault models into the code of the fault injector. We implement FIDL using the LLFI fault injection framework and measure its overheads. We find that FIDL significantly reduces the complexity of fault models by 10x on average, while incurring 4–18% implementation overhead, which in turn increases the execution time of the injector by at most 7 % across five programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Pronounced Fiddle as it involves fiddling with the program.

  2. 2.

    Available at: https://github.com/DependableSystemsLab/LLFI.

References

  1. Aliabadi, M.R., Pattabiraman, K., Bidokhti, N.: Soft-LLFI: a comprehensive framework for software fault injection. In: ISSRE 2014, pp. 1–5 (2014)

    Google Scholar 

  2. Bienia, C., Kumar, S., Singh, J.P., Li, K.: The PARSEC benchmark suite: characterization and architecturalimplications. In: Parallel Architectures and Compilation Techniques, pp. 72–81 (2008)

    Google Scholar 

  3. Broadwell, P., Sastry, N., Traupman, J.: FIG: a prototype tool for online verification of recovery mechanisms. In: Workshop on Self-healing, Adaptive and Self-managed Systems (2002)

    Google Scholar 

  4. Cotroneo, D., Lanzaro, A., Natella, R., Barbosa, R.: Experimental analysis of binary-level software fault injection in complex software. In: EDCC 2012, pp. 162–172 (2012)

    Google Scholar 

  5. Cotroneo, D., Natella, R.: Fault injection for software certification. IEEE Trans. Secur. Priv. 11(4), 38–45 (2013)

    Article  Google Scholar 

  6. Dawson, S., Jahanian, F., Mitton, T.: Experiments on six commercial TCP implementations using a software fault injection tool. Softw. Pract. Exper. 27(12), 1385–1410 (1997)

    Article  Google Scholar 

  7. Filman, R., Elrad, T., Clarke, S., et al.: Aspect-Oriented Software Development. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  8. Giuffrida, C., Kuijsten, A., Tanenbaum, A.S.: EDFI: a dependable fault injection tool for dependability benchmarking experiments. In: PRDC 2013, pp. 31–40 (2013)

    Google Scholar 

  9. Gregg, B., Mauro, J.: DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X, and FreeBSD. Prentice Hall Professional, Upper Saddle River (2011)

    Google Scholar 

  10. Henning, J.L.: SPEC CPU2000: measuring cpu performance in the new millennium. IEEE Trans. Comput. 33(7), 28–35 (2000)

    Google Scholar 

  11. Joshi, P., Gunawi, H.S., Sen, K.: PREFAIL: a programmable tool for multiple-failure injection. ACM SIGPLAN Not. 46, 171–188 (2011)

    Article  Google Scholar 

  12. Juszczyk, L., Dustdar, S.: A programmble fault injection testbed generator for SOA. In: Weske, M., Yang, J., Fantinato, M., Maglio, P.P. (eds.) ICSOC 2010. LNCS, vol. 6470, pp. 411–425. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  13. Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: CGO 2004, pp. 75–86 (2004)

    Google Scholar 

  14. Qining, L., Farahani, M., Wei, J., Thomas, A., Pattabiraman, K.: LLFI: an intermediate code-level fault injection tool for hardware faults. QRS 2015, 11–16 (2015)

    Google Scholar 

  15. Madeira, H., Costa, D., Vieira, M.: On the emulation of software faults by software fault injection. DSN 2000, 417–426 (2000)

    Google Scholar 

  16. Marinescu, P.D., George Candea, L.F.I.: A practical and general library-level fault injector. In: DSN 2009, pp. 379–388 (2009)

    Google Scholar 

  17. Murphy, G.C., Walker, R.J., Banlassad, E.L.A.: Evaluating emerging software development technologies: lessons learned from assessing aspect-oriented programming. IEEE Trans. Softw. Eng. 25(4), 438–455 (1999)

    Article  Google Scholar 

  18. Schirmeier, H., Hoffmann, M., Kapitza, R., Lohmann, D., Spinczyk, O.: FAIL: towards a versatile fault-injection experiment framework. ARCS 2012, 1–5 (2012)

    Google Scholar 

  19. Stratton, J.A., Rodrigues, C., Sung, I.-J., Obeid, N., Chang, L.-W., Anssari, N., Liu, G.D., W Hwu, W.-M.: PARBOIL: a revised benchmark suite for scientific and commercial throughput computing. In: RHPC 2012 (2012)

    Google Scholar 

  20. Wang, J., Zhao, M., Zeng, Q., Wu, D., Liu, P.: Risk assessment of buffer heartbleed over-read vulnerabilities. In: DSN 2015 (2015)

    Google Scholar 

  21. Wei, J., Thomas, A., Li, G., Pattabiraman, K.: Quantifying the accuracy of high-level fault injection techniques for hardware faults. In: DSN 2014, pp. 375–382 (2014)

    Google Scholar 

  22. Winter, S., Sârbu, C., Suri, N., Murphy, B.: The impact of fault models on software robustness evaluations. In: ICSE 2011, pp. 51–60 (2011)

    Google Scholar 

  23. Zhou, F., Condit, J., Anderson, Z., Bagrak, I., Ennals, R., Harren, M., Necula, G., Brewer, E.: SafeDrive: safe and recoverable extensions using language-based techniques. In: OSDI, pp. 45–60 (2006)

    Google Scholar 

Download references

Acknowledgements

This work was supported by the Natural Sciences and Engineering Research Council of Canada (NSERC), and a gift from Cisco Systems. We thank Nematollah Bidokhti for his valuable comments on this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Maryam Raiyat Aliabadi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Raiyat Aliabadi, M., Pattabiraman, K. (2016). FIDL: A Fault Injection Description Language for Compiler-Based SFI Tools. In: Skavhaug, A., Guiochet, J., Bitsch, F. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2016. Lecture Notes in Computer Science(), vol 9922. Springer, Cham. https://doi.org/10.1007/978-3-319-45477-1_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-45477-1_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-45476-4

  • Online ISBN: 978-3-319-45477-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics