[Bug 1979342] Re: ata_id command provides wrong information for ATA devices
Dan Streetman
1979342 at bugs.launchpad.net
Wed Jun 22 14:32:21 UTC 2022
Unfortunately, while the udev info for affected ATA drives might be
'wrong', that udev info is what all existing Bionic users are currently
using, and expecting. Backporting this patch would change the udev info
for all Bionic users (with affected ATA drives) which very likely would
cause regressions or at least unexpected behavior.
I think the existing behavior of udev in Bionic needs to remain
unchanged, and this patch should not be backported.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1979342
Title:
ata_id command provides wrong information for ATA devices
Status in systemd package in Ubuntu:
New
Status in systemd source package in Bionic:
Confirmed
Bug description:
[DESCRIPTION]
Original revisions of the SAT (SCSI-ATA Translation) specification
required that all sense data be reported in Descriptor Format (72h).
Later revisions specifcally allow and account for sense data being
reported in Fixed Format (70h).
The current code checks for a Descriptor Format sense structure (0x72),
then looks specifically at the first byte of the first descriptor for the
ATA specific code 0x9, cross referencing it with the first byte which is
just a length field 0x0c (as a sanity check).
The code did not account for the Fixed Format case (0x70).
Upstream commit 402fecff19d42("ata_id: Add check for fixed format sense codes (#13654)")
fixed this by checking for the Fixed Format case(0x70) adn then falling back to
using the top-level SCSI Sense data for the Additional Sense code (0x0) and
then the Additional Sense Code Qualifier (0x1d).
[TEST CASE]
To test this you need and ATA device.
Without the patch id_ata command returns error code 2.
With the patch it returns the correct information :
root at machine:~# ./ata_id /dev/sdn -x
ID_ATA=1
ID_TYPE=disk
ID_BUS=ata
ID_MODEL=HGST_HUH728080ALE604
ID_MODEL_ENC=HGST\x20HUH728080ALE604\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_REVISION=A4GNW7J0
ID_SERIAL=HGST_HUH728080ALE604_ZZZZH3VX
ID_SERIAL_SHORT=ZZZZH3VX
...
(see commit message for more details)
[REGRESSION POTENTIAL]
This commit changes disk_identify_command() function in src/udev/ata_id/ata_id.c
and therefore any regression potential will affect only this executable (and any other
that may use it).
[OTHER]
The fix is already in Focal.
Currently only Bionic is affected.
Upstream fix :
https://github.com/systemd/systemd/commit/402fecff19d42bb06caed1a3a32262c18087b7f1
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1979342/+subscriptions
More information about the foundations-bugs
mailing list