I find this "write corrections to the parity disk" idea very, very confusing. The whole point of parity is to be able to fix errors in your data if any are found. Why would you want to update the parity disk with what you are currently reading if there are errors? You want to correct the errors, not write new parity so it passes with the current data. The way this is worded in the settings makes me believe that this is indeed what is happening, that parity is being incorrectly updated based on current data, and is only affirmed by the discussion in this thread. That being, a "correcting" parity check is actually just throwing parity out the window and completely ignoring it, and is simply rebuilding parity with whatever data is currently on the data drives. Why is this something you would want to do? This seems like an insanely bad idea. Have I actually got this wrong? Because the discussion here seems to say I've actually got it right.
Given the feature's description and the discussion in this thread, this is what I think would happen if I took a disk to another machine, made corrupting changes to tons of files on it, and put it back into the unRAID machine and ran a correcting parity check. The corrupted files would cause a parity check failure, and the parity disk would be updated to contain new and current parity data based on the untouched disks and the intentionally corrupted disk. Why would anyone ever want that to happen? You should want the corrupted data on the intentionally corrupted disk to be returned to the pre-corrupted state. You want to update the array based on the existing parity data. You don't want to update the parity disk to reflect the current state. Please, please tell me I have this wrong. Because if I don't have this wrong, unRAID's parity check is completely useless. I must have this wrong. But it sure seems like I have it correct in my head, given what I've just read.