FIG: Library-Level Error Injection for Shared Libraries in UNIX/Linux

Pete Broadwell - (pbwell@cs)
Naveen Sastry - (nks@cs)
Jonathan Traupman - (jont@cs)


FIG is a tool for injecting errors from shared library routines into applications in UNIX or Linux. These errors can represent failures in the libraries themselves or in the underlying system environment. We envision that FIG will be used as a tool for testing the ability of an application to deal with these kinds of errors. FIG's primary mechanism is the use of the LD_PRELOAD environment variable to override the standard implementations of library functions with instrumented versions that are capable of logging and injecting errors.


FIG began life as a graduate class project for CS294-4: Recovery-Oriented Computing at UC Berkeley in the fall of 2001. Originally the name stood for Fault Injection in Glibc, but eventually we realized that the problems FIG presents to applications are better described as errors, and that its mechanism can be applied to all shared libraries, not just glibc. So now it's just another meaningless acronym.

In the months following the class, FIG became one of the sample strategies of the Berkeley/Stanford Recovery-Oriented Computing (ROC) project, which explores novel ways to provide highly-dependable Internet services, particularly by emphasizing recovery from failures rather than avoidance of failures.


Other Resources