md is very dependant on the driver doing the right thing. It doesn't do any timeouts or anything like that - it assumes the driver will. md simply trusts the return status from the drive, and fails a drive if and only if a write to the drive is reported as failing (if a read fails, md trys to over-write with good data first). I don't know exactly how the driver was responding to the bad cable, but it clearly wasn't returning an error, so md didn't fail it.
There were a lot of errors in dmesg -- seems like they did not get passed up to md? I find it surprising that the md layer doesn't have its own timeouts, but then I know nothing about such things :) Thanks for clearing this up for me, C. [...] ata2: port reset, p_is 8000000 is 2 pis 0 cmd 44017 tf d0 ss 123 se 0 ata2: status=0x50 { DriveReady SeekComplete } sdc: Current: sense key: No Sense Additional sense: No additional sense information ata2: handling error/timeout ata2: port reset, p_is 0 is 0 pis 0 cmd 44017 tf 150 ss 123 se 0 ata2: status=0x50 { DriveReady SeekComplete } ata2: error=0x01 { AddrMarkNotFound } sdc: Current: sense key: No Sense Additional sense: No additional sense information [repeat] - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html