[dm-devel] Write protected devices, unexpected dm-multipath queueing

Mike Snitzer snitzer at redhat.com
Fri Jan 6 22:32:12 UTC 2012


On Fri, Jan 06 2012 at  2:30pm -0500,
Christophe Varoqui <christophe.varoqui at gmail.com> wrote:

> Hannes, list,
> 
> reading your kernel path there
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=63583cca745f440167bf27877182dc13e19d4bcf
> I wonder if this is expected that a write io on a write protected device
> is returned to the queue ? I would have guessed it qualified as
> TARGET_ERROR, hence not retryable (and not causing path invalidation).
> 
> In the following log the sense code is clearly seen as 
> Sense Key : Data Protect [current]
> Add. Sense: Write protected
> 
> The log is grabbed from a el6 kernel rev. 131 which include the
> mentioned patch (since rev. 110 iirc).
> 
> Care to confirm something is fishy there ?

scsi_check_sense() needs to be trained to return TARGET_ERROR for this
case.

The commit you referenced wasn't meant to have covered _every_ possible
TARGET_ERROR case.  For example, I posted a patch for other TARGET_ERROR
cases here:
http://www.spinics.net/lists/linux-scsi/msg55792.html

> ====
> 
> Jan  6 02:54:20 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 0
> 
> Jan  6 02:54:20 wheeler multipathd: 360000970000292602571533030384444:
> Entering recovery mode: max_retries=5
> 
> Jan  6 02:54:23 wheeler multipathd: 360000970000292602571533030384444:
> sdbq - tur checker reports path is up
> 
> Jan  6 02:54:23 wheeler multipathd: 68:64: reinstated
> 
> Jan  6 02:54:23 wheeler multipathd: 360000970000292602571533030384444:
> queue_if_no_path enabled
> 
> Jan  6 02:54:23 wheeler multipathd: 360000970000292602571533030384444:
> Recovered to normal mode
> 
> Jan  6 02:54:23 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 1
> 
> Jan  6 02:54:23 wheeler kernel: sd 2:0:0:15: [sdbq] Unhandled sense code
> 
> Jan  6 02:54:23 wheeler kernel: sd 2:0:0:15: [sdbq] Result:
> hostbyte=invalid driverbyte=DRIVER_SENSE
> 
> Jan  6 02:54:23 wheeler kernel: sd 2:0:0:15: [sdbq] Sense Key : Data
> Protect [current] 
> 
> Jan  6 02:54:23 wheeler kernel: sd 2:0:0:15: [sdbq] Add. Sense: Write
> protected
> 
> Jan  6 02:54:23 wheeler kernel: sd 2:0:0:15: [sdbq] CDB: Write(10): 2a
> 00 00 00 00 d0 00 00 10 00
> 
> Jan  6 02:54:23 wheeler kernel: end_request: I/O error, dev sdbq, sector
> 208
> 
> Jan  6 02:54:23 wheeler kernel: device-mapper: multipath: Failing path
> 68:64.
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> sdq - tur checker reports path is up
> 
> Jan  6 02:54:24 wheeler multipathd: 65:0: reinstated
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 2
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> sdaq - tur checker reports path is up
> 
> Jan  6 02:54:24 wheeler multipathd: 66:160: reinstated
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 3
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> sdcq - tur checker reports path is up
> 
> Jan  6 02:54:24 wheeler multipathd: 69:224: reinstated
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 4
> 
> Jan  6 02:54:24 wheeler multipathd: 68:64: mark as failed
> 
> Jan  6 02:54:24 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 3
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:0:15: [sdq] Unhandled sense code
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:0:15: [sdq] Result:
> hostbyte=invalid driverbyte=DRIVER_SENSE
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:0:15: [sdq] Sense Key : Data
> Protect [current] 
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:0:15: [sdq] Add. Sense: Write
> protected
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:0:15: [sdq] CDB: Write(10): 2a 00
> 00 00 00 d0 00 00 10 00
> 
> Jan  6 02:54:24 wheeler kernel: end_request: I/O error, dev sdq, sector
> 208
> 
> Jan  6 02:54:24 wheeler kernel: device-mapper: multipath: Failing path
> 65:0.
> 
> Jan  6 02:54:24 wheeler kernel: sd 2:0:1:15: [sdcq] Unhandled sense code
> 
> Jan  6 02:54:24 wheeler kernel: sd 2:0:1:15: [sdcq] Result:
> hostbyte=invalid driverbyte=DRIVER_SENSE
> 
> Jan  6 02:54:24 wheeler kernel: sd 2:0:1:15: [sdcq] Sense Key : Data
> Protect [current] 
> 
> Jan  6 02:54:24 wheeler kernel: sd 2:0:1:15: [sdcq] Add. Sense: Write
> protected
> 
> Jan  6 02:54:24 wheeler kernel: sd 2:0:1:15: [sdcq] CDB: Write(10): 2a
> 00 00 00 00 d0 00 00 10 00
> 
> Jan  6 02:54:24 wheeler kernel: end_request: I/O error, dev sdcq, sector
> 208
> 
> Jan  6 02:54:24 wheeler kernel: device-mapper: multipath: Failing path
> 69:224.
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:1:15: [sdaq] Unhandled sense code
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:1:15: [sdaq] Result:
> hostbyte=invalid driverbyte=DRIVER_SENSE
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:1:15: [sdaq] Sense Key : Data
> Protect [current] 
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:1:15: [sdaq] Add. Sense: Write
> protected
> 
> Jan  6 02:54:24 wheeler kernel: sd 1:0:1:15: [sdaq] CDB: Write(10): 2a
> 00 00 00 00 d0 00 00 10 00
> 
> Jan  6 02:54:24 wheeler kernel: end_request: I/O error, dev sdaq, sector
> 208
> 
> Jan  6 02:54:24 wheeler kernel: device-mapper: multipath: Failing path
> 66:160.
> 
> Jan  6 02:54:25 wheeler multipathd: 65:0: mark as failed
> 
> Jan  6 02:54:25 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 2
> 
> Jan  6 02:54:25 wheeler multipathd: 66:160: mark as failed
> 
> Jan  6 02:54:25 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 1
> 
> Jan  6 02:54:25 wheeler multipathd: 69:224: mark as failed
> 
> Jan  6 02:54:25 wheeler multipathd: 360000970000292602571533030384444:
> Entering recovery mode: max_retries=5
> 
> Jan  6 02:54:25 wheeler multipathd: 360000970000292602571533030384444:
> remaining active paths: 0
> 
> 
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel




More information about the dm-devel mailing list