Crash-only software
From Wikipedia, the free encyclopedia
Crash-only software refers to computer programs that handle failures by simply restarting, without attempting any sophisticated recovery. Correctly written components of crash-only software can microreboot to a known-good state without the help of a user. Since failure-handling and normal startup use the same methods, this can increase the chance that bugs in failure-handling code will be noticed, except when there are leftover artifacts, such as data corruption from a severe failure, that don't occur during normal startup.
An example of a crash-only implementation is unplugging a computer and plugging it back in. Any data being written at the time may be corrupted, and unsaved data and settings in RAM will be lost. However, if one waits for the computer to be idle (no data being written), saves all the data they need, and hasn't changed any OS settings they want to keep, then unplugging the computer is faster than shutting down.
Crash-only software also has benefits for end users. All too often, applications do not save their data and settings during their life, only at the end of their use. For example, word processors usually save settings when they are closed. A crash-only application is designed to save all changed user settings soon after they are changed, so that the persistent state matched that of the running machine. No matter how an application terminated (be it a clean close, or the sudden failure of a laptop battery), the state would persist.
[edit] External links
- http://web.archive.org/web/20060426230247/http://crash.stanford.edu/
- http://web.archive.org/web/20060110174009/http://swig.stanford.edu/~candea/papers/crashonly/ - Original paper