On Sep 12, 2009, at 10:49 PM, Paul B. Henson wrote:

In any case, I agree with you that the firmware is buggy; however I
disagree with you as to the outcome of that bug. The drive is not returning random garbage, it has *one* byte wrong. Other than that all of the data
seems ok, at least to my inexpert eyes. smartctl under Linux issues a
warning about that invalid byte and reports everything else ok. Solaris on
an x4500 evidentally barfs over that invalid byte and returns garbage.

Actually, it's not one byte - the entire page is garbage (as we saw in the dtrace output). But I'm guessing that smartctl (and hardware SATL) is aborting on the first invalid record, while we keep going and blindly "translate" one form of garbage into another.

Overall, I think the Linux approach seems more useful. Be strict in what you generate, and lenient in what you accept ;), or something like that. As I already said, it would be really really nice if the Solaris driver could be fixed to be a little more forgiving and deal better with the drive, but
I've got no expectation that it should be done. But it could be :).

Absolutely. The SATA code could definitely be cleaned up to bail when processing an invalid record. I can file a CR for you if you haven't already done so. Also, I'd encourage any developers out there with one of these drives to take a shot at fixing the issue via the OpenSolaris sponsor process.

- Eric

Eric Schrock, Fishworks                        http://blogs.sun.com/eschrock

zfs-discuss mailing list

Reply via email to