Re: smartd broken in 3.9.0-rc4 : bisected

From: Ken Moffat
Date: Thu Mar 28 2013 - 16:59:25 EST


On Thu, Mar 28, 2013 at 01:01:48AM +0000, Ken Moffat wrote:

Adding Cc:s, further details at the end.
> Hi,
>
> just tested my first 3.9 kernel today. During boot, smartd (from
> smartmontools-6.0) fails to start. Works fine in 3.8.4.
>
> In 3.8.4 I get messages like this :
>
> Mar 27 22:02:02 ac4tv smartd[3981]: smartd 6.0 2012-10-10 r3643
> [x86_64-linux-3.8.4] (local build)
> Mar 27 22:02:02 ac4tv smartd[3981]: Copyright (C) 2002-12, Bruce
> Allen, Christian Franke, www.smartmontools.org
> Mar 27 22:02:02 ac4tv smartd[3981]: Opened configuration file
> /etc/smartd.conf
> Mar 27 22:02:02 ac4tv smartd[3981]: Configuration file
> /etc/smartd.conf parsed.
> Mar 27 22:02:02 ac4tv smartd[3981]: Device: /dev/sda, opened
> Mar 27 22:02:02 ac4tv smartd[3981]: Device: /dev/sda, WDC
> WD5000AAKX-001CA0, S/N:WD-WMAYU6818967, WWN:5-0014ee-0ad9caed4,
> FW:15.01H15, 500 GB
> Mar 27 22:02:02 ac4tv smartd[3981]: Device: /dev/sda, found in
> smartd database: Western Digital Caviar Blue Serial ATA
> Mar 27 22:02:02 ac4tv smartd[3981]: Device: /dev/sda, enabled SMART
> Automatic Offline Testing.
> Mar 27 22:02:02 ac4tv smartd[3981]: Device: /dev/sda, is SMART
> capable. Adding to "monitor" list.
> Mar 27 22:02:02 ac4tv smartd[3981]: Monitoring 1 ATA and 0 SCSI
> devices
>
> but in 3.9.0-rc4 all I get is
> Mar 28 00:39:32 ac4tv smartd[2487]: Copyright (C) 2002-12, Bruce
> Allen, Christian Franke, www.smartmontools.org
> Mar 28 00:39:32 ac4tv smartd[2487]: Opened configuration file
> /etc/smartd.conf
> Mar 28 00:39:32 ac4tv smartd[2487]: Configuration file
> /etc/smartd.conf parsed.
> Mar 28 00:39:32 ac4tv smartd[2487]: Device: /dev/sda, opened
> Mar 28 00:39:32 ac4tv smartd[2487]: Device: /dev/sda, WDC
> WD5000AAKX-001CA0, S/N:WD-WMAYU6818967, WWN:5-0014ee-0ad9caed4,
> FW:15.01H15, 500 GB
> Mar 28 00:39:32 ac4tv smartd[2487]: Device: /dev/sda, found in
> smartd database: Western Digital Caviar Blue Serial ATA
> Mar 28 00:39:32 ac4tv smartd[2487]: Device: /dev/sda, could not
> enable SMART capability
> Mar 28 00:39:32 ac4tv smartd[2487]: Unable to register ATA device
> /dev/sda at line 1 of file /etc/smartd.conf
> Mar 28 00:39:32 ac4tv smartd[2487]: Unable to register device
> /dev/sda (no Directive -d removable). Exiting.
>
> Using strace, in the failing version I get
> 2643 ioctl(3, HDIO_DRIVE_CMD, 0x7fff53288a60) = -1 EIO (Input/output error)
>
> instead of the normal
> 3981 ioctl(3, HDIO_DRIVE_CMD, 0x7fff04437340) = 0
> 3981 ioctl(3, HDIO_DRIVE_TASK, 0x7fff04437350) = 0
> 3981 ioctl(3, HDIO_DRIVE_CMD, 0x7fff04437330) = 0
> 3981 ioctl(3, HDIO_DRIVE_CMD, 0x7fff04437330) = 0
> 3981 ioctl(3, HDIO_DRIVE_TASK, 0x7fff04437340) = 0
>
> Looks like I'll be bisecting.
>
> ken
Bisection blames :

commit 84a9a8cd9d0aa93c17e5815ab8a9cc4c0a765c63
Author: Gwendal Grignou <gwendal@xxxxxxxxxx>
Date: Fri Jan 18 10:56:43 2013 -0800

[libata] Set proper SK when CK_COND is set.

When the user application sends a ATA_12 or ATA_16 PASSTHROUGH
scsi command, put the task file register in the sense data with the
proper Sense Key. Instead of NO SENSE, set RECOVERED, as
specified in [SAT2]12.2.5 Table 92.

That reverts cleanly from 3.9.0-rc4, and with it reverted smartd
works again. Obviously that does nothing to fix whatever problem
this was supposed to fix. I can test any follow-up patches if
needed.

ken
--
das eine Mal als Tragödie, das andere Mal als Farce
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/