I posted my zpool history yesterday in this thread. As you can see in that history there had been no "zpool clear" prior to the first "zpool status" output, which I posted in the initial post. FreeNAS runs a daily "zpool status" query and mails it to me. On August 18 I got the first email with the error warning but at the same time, the error counters on the disks where ZERO.
One day earlier the counter was ZERO as well and there was _no_ incosistency in the pool.
Between those two days (08/17 and 08/18) there had ben no scrubs, no reboots, no "zpool clear", no exchange of hard drives. Nothing.
But that only tells you that it found the error on August 18th. Not that the corruption occurred on that exact day. The corruption could have been from before then. It's like a road with bad potholes, you don't know if the road 5 miles up is bad or not until you get there.
Wouldn't this scenario cause an hit on the checksum error counter? As far as I understand ZFS stores a checksum for each block. So if corrupted data had been written to the disks, ZFS would detect the corruption by verifying the stored checksum with the calculated checksum. If they differ I would suspect that the checksumm error counter goes up. But it has been ZERO since the creation of the pool until this very moment (or until the "zpool clear" I did yesterday for that matter).
That's what its supposed to do ideally. But if you don't do regular scrubs to ensure everything is healthy, have bad RAM, or no redundancy for whatever reason you can think of then things can go very wrong(as you are seeing).
But let's say the corruption would have been caused by bad RAM. How would an additional disk have helped me there? The corrupted data from the bad RAM would just have been written to one more disk. But how would that help?
The short answer is it wouldn't have. You could have have had RAIDZ100 and it wouldn't have mattered. Bad RAM is the achille's heal of ZFS. And now you understand why when the FreeNAS manual and the forum stickies say to use ECC RAM, its dead serious.
You should get memtestx86 from
www.memtest.org and let it run for 3 passes. It should take some hours. Normally I tell people to start it and go to bed. Any errors before you've completed 3 passes means you have problems.