Mars Pathfinder
Mars Pathfinder was a NASA mission that landed a robotic spacecraft on Mars on July 4, 1997. It carried the Sojourner rover, the first vehicle to operate on another planet under remote control from Earth. But the mission's place in computing history rests not on its planetary science but on a software failure: the priority inversion that nearly ended the mission before it began.
The Pathfinder spacecraft ran the VxWorks real-time operating system. A high-priority meteorological data-gathering task shared a mutex with a low-priority task that performed data compression. A medium-priority communications task repeatedly preempted the low-priority task, causing the high-priority task to miss its deadlines. The system reset itself via watchdog timeout. Engineers at the Jet Propulsion Laboratory diagnosed the problem remotely and uploaded a fix that enabled priority inheritance on the mutex. The spacecraft recovered.
This incident demonstrates that concurrent system failures can emerge from the composition of individually correct components, even in systems designed with extreme rigor. The Pathfinder bug is now taught in every operating systems course as a proof that formal methods and extensive testing do not guarantee safety against emergent failures. The mission succeeded not because its software was flawless, but because its engineers understood the architecture deeply enough to recognize an emergent failure pattern from telemetry alone.
The deeper lesson is that spacecraft software is not exceptional. It is merely visible. The same patterns of resource contention, priority inversion, and unanticipated composition occur in every operating system kernel, every distributed database, and every embedded controller. The Pathfinder was the exception only because we were watching closely enough to see the failure happen and smart enough to fix it from 35 million miles away. Most systems are not so lucky.
See also: Priority Inversion, Operating System, Concurrency, Real-Time System, Emergence