Posted By Quentin Carnicelli on January 25th, 2006
Around the beginning of December, my main PowerMac started experiencing intermittent application crashes. At first it would just be gcc crashing every so often, which didn’t seem all that odd. But then by January it had progressed to the point where I started to see “sequential” crashes. I’d launch an application, say Text Edit, and it would crash. Then CrashReporter would launch itself and it would crash, followed by whatever was launched next.
Clearly something was modifying the behavior of all my applications. And it wasn’t the Input Managers I have installed. It finally occurred to me to run the excellent memtest. And sure enough, out of my 1 GB of RAM I have, it found 512 bytes (0.0000005%) that wasn’t functioning properly.
I ordered some replacement RAM, but in the meantime I wondered if I couldn’t fix it myself. Being software inclined, I figured I could probably fix it with software. We just have to pretend the bad memory isn’t there, the same as hard drives do.
I’m sure people have implemented similar (and better) memory workarounds before, but you can see my own solution here. The way it works is pretty straightforward:
1. In blocks, allocate all the free memory you can get your hands on.
2. Test each block to see if it works as RAM should.
3. For working blocks, release them back to the system. For broken blocks, hold onto them.
4. Wash, rinse, wait for twelve hours, and repeat.
It’s certainly not fool proof, as it’ll miss any bad memory already being used, but it is good enough that my PowerMac now passes memtest completely.
And perhaps more importantly, I can once again compile Universal Audio Hijack Pro builds without gcc cutting out every three minutes.