EETimes provides a detail description of how the problem with the rovers was created/solved:
“Part of my responsibility in the data management team is to keep track of the data files that are created, transmitted and deleted on the rover during the mission,” Klemm explained. “We recognized early in the planning process that the flash file system had a limited capacity for files. It is not just a limitation in the flash itself but also in the directory structure.”
As Murphy would have it, earlier, sol 19 Spirit attempted to allocate more files than the RAM-based directory structure could accommodate. That caused an exception, which caused the task that had attempted the allocation to be suspended. That in turn led to a reboot, which attempted to mount the flash file system. But the utility software was unable to allocate enough memory for the directory structure in RAM, causing it to terminate, and so on.
“The irony of it was that the operating system was doing exactly what we’d told it to do,” Klemm lamented.Working on the theory that the rover was in fact listening and rebooting, the team commanded Spirit to reboot without mounting the flash file system.
Having worked on Vxworks for a while, remote debugging can painful and fustrating, but when one does get a hold on the problem its very rewarding. Requires lots of patience & energy to relentlessly try and fix the problem. Im glad they fix the problem 😉