Software failed, in this case, because the hardware under it failed in some way. Don't we need to fix both? Software cannot overcome all hardware failures. What where the underlying hardware failures? Were there any details? I have some guesses...