udisks reporting input/output error that seems to be nonsense
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libatasmart |
Confirmed
|
Medium
|
|||
udisks |
Unknown
|
Unknown
|
|||
libatasmart (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
udisks (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
udisks2 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
My syslog is full of entries that look like this:
Mar 3 12:06:45 faldara udisksd[2630]: Error performing housekeeping for drive /org/freedeskto
And opening the disks utility shows invalid smart data, and choosing to update the smart data also reports an I/O error. Using smartctl on the command line though says this disk is fine:
root@faldara:~# smartctl -a /dev/sdc
smartctl 5.43 2012-06-30 r3573 [x86_64-
Copyright (C) 2002-12 by Bruce Allen, http://
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Raptor
Device Model: WDC WD360GD-00FNA0
Serial Number: WD-WMAH91337618
Firmware Version: 35.06K35
User Capacity: 37,019,566,080 bytes [37.0 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 6
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sun Mar 3 23:25:55 2013 EST
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
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 1572) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
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.
No General Purpose Logging support.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 28) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0007 088 084 021 Pre-fail Always - 2100
4 Start_Stop_Count 0x0032 095 095 040 Old_age Always - 5566
5 Reallocated_
7 Seek_Error_Rate 0x000b 200 200 051 Pre-fail Always - 0
9 Power_On_Hours 0x0032 080 080 000 Old_age Always - 14706
10 Spin_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0
11 Calibration_
12 Power_Cycle_Count 0x0032 095 095 000 Old_age Always - 5255
194 Temperature_Celsius 0x0022 109 253 000 Old_age Always - 34
196 Reallocated_
197 Current_
198 Offline_
199 UDMA_CRC_
200 Multi_Zone_
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 Extended offline Completed without error 00% 942 -
# 2 Extended offline Completed without error 00% 232 -
# 3 Extended offline Completed without error 00% 145 -
# 4 Extended offline Completed without error 00% 62 -
# 5 Extended offline Completed without error 00% 761 -
# 6 Extended offline Completed without error 00% 562 -
# 7 Extended offline Completed without error 00% 696 -
# 8 Extended offline Completed without error 00% 192 -
# 9 Extended offline Completed without error 00% 888 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
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.
root@faldara:~#
Related branches
- Martin Pitt: Approve
- Marc Deslauriers: Needs Fixing
-
Diff: 3141 lines (+3094/-2)6 files modified.pc/applied-patches (+1/-0)
.pc/fix-status-io-error.patch/atasmart.c (+3056/-0)
atasmart.c (+2/-2)
debian/changelog (+8/-0)
debian/patches/fix-status-io-error.patch (+26/-0)
debian/patches/series (+1/-0)
Changed in libatasmart: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
It looks like the problem is in libatasmart. It seems to be throwing the io error in sk_disk_ smart_status here:
/* SAT/USB bridges truncate packets, so we only check for 4F, TYPE_ATA_ PASSTHROUGH_ 12 || cmd[3] == htons(0x00C2U)) &&
*good = TRUE; TYPE_ATA_ PASSTHROUGH_ 12 || cmd[3] == htons(0x002CU)) &&
cmd[ 4] == htons(0xF400U))
*good = FALSE;
errno = EIO;
return -1;
* not for 2C on those */
if ((d->type == SK_DISK_
cmd[4] == htons(0x4F00U))
else if ((d->type == SK_DISK_
else {
}
(gdb) print d->type TYPE_ATA_ PASSTHROUGH_ 16
$5 = SK_DISK_
(gdb) print /x cmd
$4 = {0x0, 0x0, 0x0, 0xc200, 0x454f, 0x5000}