Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#1094 closed enhancement (fixed)

Seagate Momentus 5400.6 (ST9500325AS) requires '-F xerrorlba'

Reported by: Valerio Owned by: Christian Franke
Priority: minor Milestone: Release 7.0
Component: drivedb Version: 6.6
Keywords: Cc:

Description (last modified by Christian Franke)

my disk is:

Model Family:     Seagate Momentus 5400.6
Device Model:     ST9500325AS
Serial Number:    6VE28ZKM
LU WWN Device Id: 5 000c50 018cbece4
Firmware Version: 0002SDM1
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    5400 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Thu Sep 27 01:03:18 2018 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM level is:     254 (maximum performance)
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, NOT FROZEN [SEC1]
Wt Cache Reorder: Unknown

so it has:

$ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes

Report from '-l error' say:

---------------------------
Error 50 occurred at disk power-on lifetime: 21702 hours (904 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  24 00 01 ff ff ff ef 00      00:40:02.086  READ SECTOR(S) EXT
  61 00 08 ff ff ff 4f 00      00:39:58.630  WRITE FPDMA QUEUED
  61 00 10 ff ff ff 4f 00      00:39:58.630  WRITE FPDMA QUEUED
  61 00 08 ff ff ff 4f 00      00:39:58.629  WRITE FPDMA QUEUED
  61 00 08 ff ff ff 4f 00      00:39:58.629  WRITE FPDMA QUEUED

While report from '-l xerror' say:

----------------------------------
Error 50 [9] occurred at disk power-on lifetime: 21702 hours (904 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 51 00 00 00 34 fc 00 a1 04 00 00  Error: UNC at LBA = 0x34fc00a104 = 227566199044

  Commands leading to the command that caused the error were:
  CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
  -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
  24 00 00 00 01 00 34 fc 00 a1 04 e0 00     00:40:02.086  READ SECTOR(S) EXT
  61 00 00 00 08 00 36 d1 00 77 f8 40 00     00:39:58.630  WRITE FPDMA QUEUED
  61 00 00 00 10 00 36 d1 00 77 c8 40 00     00:39:58.630  WRITE FPDMA QUEUED
  61 00 00 00 08 00 2f e6 00 af 90 40 00     00:39:58.629  WRITE FPDMA QUEUED
  61 00 00 00 08 00 2f e3 00 af d8 40 00     00:39:58.629  WRITE FPDMA QUEUED

The '-l error' seems limited by the 0x0fffffff limitation, but
the '-l xerror' LBA=227566199044 is greather than max disk sector=976773168.

Report from '-l selftest' show the right LBA bad sector:

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Self-test routine in progress 40%     21708         -
# 2  Extended offline    Completed: read failure       20%     21693         883031044

Also report from '-l xselftest' show the right LBA bad sector:

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Self-test routine in progress 40%     21708         -
# 2  Extended offline    Completed: read failure       20%     21693         883031044

Change History (10)

comment:1 by Valerio, 5 years ago

my system is:
Ubuntu 18.04.1 LTS bionic
Linux 02cor2130 4.15.0-34-generic #37-Ubuntu SMP x86_64 GNU/Linux

comment:2 by Christian Franke, 5 years ago

Description: modified (diff)

comment:3 by Christian Franke, 5 years ago

Component: smartctldrivedb
Milestone: undecided

Again a firmware author did not read the ATA specs properly and provides the ATA LBA registers in LE byte ordering instead of ATA register ordering. Please test whether smartctl -F xerrorlba -l xerror ... provides the correct output. It should change to:

  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 51 00 00 00 00 34 a1 fc 04 00 00  Error: UNC at LBA = 0x0034a1fc04 = 883031044

If this works, we could add -F xerrorlba to the drive database entry for Seagate Momentus 5400.6.

comment:4 by Valerio, 5 years ago

amazing, you have an option to fix on the fly a bug in the HDD firmware ... no words
Will test

comment:5 by Valerio, 5 years ago

works.
Did you know if once added to drive database, also gSmartControl will show right values?

comment:6 by Christian Franke, 5 years ago

Milestone: undecidedRelease 6.7
Owner: set to Christian Franke
Status: newaccepted
Summary: LBA from '-l xerror' are out of disk sectorSeagate Momentus 5400.6 (ST9500325AS) requires '-F xerrorlba'
Type: defectenhancement

Thanks for testing.

Did you know if once added to drive database, also gSmartControl will show right values?

yes, AFIAK.

comment:7 by Valerio, 5 years ago

once added to drive DB, both commands:
$ smartctl -l xerror /dev/sda
and
$ smartctl -F xerrorlba -l xerror /dev/sda
will show same results?

comment:8 by Valerio, 5 years ago

what is the effect of adding to drive DB ?
It swap LE byte ordering with ATA register ordering, or let them be read identical?

Last edited 5 years ago by Valerio (previous) (diff)

comment:9 by Christian Franke, 5 years ago

Resolution: fixed
Status: acceptedclosed

comment:10 by Christian Franke, 5 years ago

Milestone: Release 6.7Release 7.0

Milestone renamed

Note: See TracTickets for help on using tickets.