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
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss