FIG: Library-Level Error Injection for Shared Libraries in UNIX/Linux
Pete Broadwell - (pbwell@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.
FIG 0.3 Beta - July 29, 2002 [fig.tar.gz]
This is an unsupported beta release. Feel free to email us with questions if you have them, but in general we do not plan to do any further development on FIG. You're welcome to use it yourself, however.
Installation instructions are available in the INSTALL file. The README contains all other documentation.