public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
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

       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