It's looking like it was a memory leak that SNAFUed MER-A. Supposably the
software used by MER is written in the C programming language. I program
in C myself and it is an excellent language. One of the biggest worries
for a C programmer is a "memory leak". This class of error can manifest
itself in different ways. The most common is to allocate a block of dynamic
memory using the Malloc system call and then accidently write data
outside of the specified memory (easy to do when using a memory pointer).
The original error normally does not reveal itself when made and typically
won't show symptoms until months later in a totally different part of the
program. This is because the original error is scribling nonsense in
random parts of the program. Initially the nonsense is being written in
unallocated and unused memory. Then latter that region of memory is
allocated and the memory leak becomes a problem. An even worse version
of the memory leak is the allocation/deallocation error. The programmer
initially allocates 1000000 bytes of memory and does something with it.
Then the programmer deallocates 999999 bytes of memory (leaving one byte
allocated by accident). This allocation/deallocation process is repeated
one billion times. Slowly the available memory gets eaten up until there
isn't any left. Memory leaks are tough bugs to prevent and find. I
doubt there is a professional C programmer alive who has never been bit
by a memory leak. People might ask: "Why program in C if it can create
such terrible bugs?". The answer is that C is an extremely powerful
language (industrial strength, almost as powerful as assembly language,
definitely not for novices). What gives C its programming power also
allows it to produce terrible bugs.
Gary
MER-A, the C programming language and memory leaks
