From: Mike Snitzer <snitzer@redhat.com>
To: christophe.varoqui@opensvc.com,
device-mapper development <dm-devel@redhat.com>
Cc: Hannes Reinecke <hare@suse.de>,
"cyril.galibern" <cyril.galibern@opensvc.com>,
linux-scsi@vger.kernel.org
Subject: Re: Write protected devices, unexpected dm-multipath queueing
Date: Fri, 6 Jan 2012 17:32:12 -0500 [thread overview]
Message-ID: <20120106223212.GB2393@redhat.com> (raw)
In-Reply-To: <1325878251.19595.13.camel@lapoo.opensvc.com>
On Fri, Jan 06 2012 at 2:30pm -0500,
Christophe Varoqui <christophe.varoqui@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@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
next parent reply other threads:[~2012-01-06 22:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1325878251.19595.13.camel@lapoo.opensvc.com>
2012-01-06 22:32 ` Mike Snitzer [this message]
2012-01-06 22:55 ` Write protected devices, unexpected dm-multipath queueing Mike Snitzer
2012-01-06 23:20 ` Mike Snitzer
2012-01-07 9:39 ` Christophe Varoqui
2012-01-09 8:01 ` Hannes Reinecke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120106223212.GB2393@redhat.com \
--to=snitzer@redhat.com \
--cc=christophe.varoqui@opensvc.com \
--cc=cyril.galibern@opensvc.com \
--cc=dm-devel@redhat.com \
--cc=hare@suse.de \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox