Subject: parted didn’t check the returned sense data

From: <[email-masked]>
Date: Tue, 26 Oct 2021 09:55:02 +0000

Hi,
When we did secure erase for large capacity drive (18TB), the drive capacity will changed to 0. This issue can be reproduced each time, please refer to attached files for details.

>From the system log we found parted send Read(16) to sde at Oct 13 01:30:02, due to security erase in progress “Not Ready” is returned from this drive which is expected.
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Synchronize Cache(10) 35 00 00 00 00 00 00 00 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
Oct 13 01:30:02 localhost kernel: blk_update_request: I/O error, dev sde, sector 0
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read
Oct 13 01:30:02 localhost kernel: Buffer I/O error on dev sde, logical block 0, async page read

// host tried to recover this drive by spinning up but no responding, which due to the same reason, i.e. security erase in progress.
Oct 13 01:30:02 localhost kernel: sd 13:0:3:0: [sde] Spinning up disk...
Oct 13 01:31:43 localhost kernel: ....................................................................................................not responding...

// host send Read Capacity(16) and Read Capacity(10) but still failed (security erase in progress), finally host changed the capacity to zero.
Oct 13 01:31:43 localhost kernel: sd 13:0:3:0: [sde] Read Capacity(16) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:31:43 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:31:43 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:31:43 localhost kernel: sd 13:0:3:0: [sde] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Oct 13 01:31:43 localhost kernel: sd 13:0:3:0: [sde] Sense Key : Not Ready [current] [descriptor]
Oct 13 01:31:43 localhost kernel: sd 13:0:3:0: [sde] Add. Sense: Logical unit not ready, security session in progress
Oct 13 01:31:43 localhost kernel: sde: detected capacity change from 18000207937536 to 0

I suppose parted should check the returned sense data and not change drive capacity to 0, could you please help to check this issue? Many thanks.

Regards,
Johnson