On Sun, 13 Sep 2009, Eric Schrock wrote: > 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.
I updated to the new X25-E firmware, and I think it might have resolved the problem. smartctl under Linux no longer give a warning, and the diskstat check under Solaris no longer appears to have garbage. I attached output from smartctl, diskstat, and the dtrace script at the bottom, does it look like the firmware is returning valid stuff now? > 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. I haven't; even if the new firmware does resolve the problem, I like robustness :), so it would still be nice in general for the code to be more forgiving and perhaps just log a warning. Thanks... ------------------------------------------------------------------ smartctl version 5.38 [x86_64-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Device Model: SSDSA2SH032G1GN INTEL Serial Number: CVEM902600J6032HGN Firmware Version: 045C8850 User Capacity: 32,000,000,000 bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 7 ATA Standard is: ATA/ATAPI-7 T13 1532D revision 1 Local Time is: Mon Sep 14 18:26:09 2009 PDT SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED See vendor-specific Attribute list for marginal Attributes. General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. Self-test execution status: ( 32) The self-test routine was interrupted by the host with a hard or soft reset. Total time to complete Offline data collection: ( 1) seconds. Offline data collection capabilities: (0x75) SMART execute Offline immediate. No Auto Offline data collection support. Abort Offline collection upon new command. No Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 2) minutes. Conveyance self-test routine recommended polling time: ( 1) minutes. SMART Attributes Data Structure revision number: 5 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 3 Spin_Up_Time 0x0000 100 000 000 Old_age Offline In_the_past 0 4 Start_Stop_Count 0x0000 100 000 000 Old_age Offline In_the_past 0 5 Reallocated_Sector_Ct 0x0002 100 100 000 Old_age Always - 0 9 Power_On_Hours 0x0002 100 100 000 Old_age Always - 68 12 Power_Cycle_Count 0x0002 100 100 000 Old_age Always - 151 192 Power-Off_Retract_Count 0x0002 100 100 000 Old_age Always - 22 232 Unknown_Attribute 0x0003 100 100 010 Pre-fail Always - 0 233 Unknown_Attribute 0x0002 099 099 000 Old_age Always - 0 225 Load_Cycle_Count 0x0000 200 200 000 Old_age Offline - 50147 226 Load-in_Time 0x0002 255 000 000 Old_age Always In_the_past 4294967295 227 Torq-amp_Count 0x0002 000 000 000 Old_age Always FAILING_NOW 281474976710655 228 Power-off_Retract_Count 0x0002 000 000 000 Old_age Always FAILING_NOW 4294967295 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 68 - # 2 Short offline Completed without error 00% 68 - # 3 Short offline Completed without error 00% 68 - # 4 Short offline Completed without error 00% 68 - # 5 Short offline Completed without error 00% 68 - # 6 Short offline Completed without error 00% 68 - # 7 Short offline Completed without error 00% 68 - # 8 Short offline Completed without error 00% 68 - # 9 Short offline Completed without error 00% 68 - #10 Short offline Completed without error 00% 68 - #11 Short offline Completed without error 00% 68 - #12 Short offline Completed without error 00% 68 - #13 Short offline Completed without error 00% 68 - #14 Short offline Completed without error 00% 68 - #15 Short offline Completed without error 00% 68 - #16 Short offline Completed without error 00% 68 - #17 Short offline Completed without error 00% 68 - #18 Selective offline Completed without error 00% 68 - #19 Selective offline Completed without error 00% 68 - #20 Selective offline Completed without error 00% 68 - #21 Conveyance offline Completed without error 00% 68 - SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 20 30 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Interrupted [00% left] (0-65535) Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay. ------------------------------------------------------------------ nvlist version: 0 protocol = scsi status = (embedded nvlist) nvlist version: 0 command-length = 6 modepages = (embedded nvlist) nvlist version: 0 informational-exceptions = (embedded nvlist) nvlist version: 0 dexcpt = 0 logerr = 0 mrie = 0x6 test = 0 ewasc = 0 perf = 0 ebf = 0 interval-timer = 0x0 report-count = 0x0 changed = 0 (end informational-exceptions) (end modepages) logpages = (embedded nvlist) nvlist version: 0 informational-exceptions = (embedded nvlist) nvlist version: 0 length = 0x8 general = 1 (end informational-exceptions) self-test = (embedded nvlist) nvlist version: 0 length = 0x190 invalid-param-code = 0x0 (end self-test) (end logpages) (end status) predictive-failure = (embedded nvlist) nvlist version: 0 additional-sense-code = 0x0 additional-sense-code-qualifier = 0x0 (end predictive-failure) faults = (embedded nvlist) nvlist version: 0 predictive-failure = 0 (end faults) ------------------------------------------------------------------ Tracing sata self test queries... sata_ext_smart_selftest_read_log succeeded 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 0: 01 00 14 00 00 00 00 00 00 00 1e 00 00 00 00 00 ................ 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1f0: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 c8 ................ sata_ext_smart_selftest_read_log succeeded 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 0: 01 00 14 00 00 00 00 00 00 00 1e 00 00 00 00 00 ................ 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1f0: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 c8 ................ sata_ext_smart_selftest_read_log succeeded 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 0: 01 00 14 00 00 00 00 00 00 00 1e 00 00 00 00 00 ................ 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1f0: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 c8 ................ -- Paul B. Henson | (909) 979-6361 | http://www.csupomona.edu/~henson/ Operating Systems and Network Analyst | hen...@csupomona.edu California State Polytechnic University | Pomona CA 91768 _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss