* Re: Write protected devices, unexpected dm-multipath queueing
[not found] <1325878251.19595.13.camel@lapoo.opensvc.com>
@ 2012-01-06 22:32 ` Mike Snitzer
2012-01-06 22:55 ` Mike Snitzer
2012-01-09 8:01 ` Hannes Reinecke
0 siblings, 2 replies; 5+ messages in thread
From: Mike Snitzer @ 2012-01-06 22:32 UTC (permalink / raw)
To: christophe.varoqui, device-mapper development
Cc: Hannes Reinecke, cyril.galibern, linux-scsi
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Write protected devices, unexpected dm-multipath queueing
2012-01-06 22:32 ` Write protected devices, unexpected dm-multipath queueing Mike Snitzer
@ 2012-01-06 22:55 ` Mike Snitzer
2012-01-06 23:20 ` Mike Snitzer
2012-01-09 8:01 ` Hannes Reinecke
1 sibling, 1 reply; 5+ messages in thread
From: Mike Snitzer @ 2012-01-06 22:55 UTC (permalink / raw)
To: christophe.varoqui, device-mapper development; +Cc: cyril.galibern, linux-scsi
On Fri, Jan 06 2012 at 5:32pm -0500,
Mike Snitzer <snitzer@redhat.com> wrote:
> 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.
Hmm, but looking closer that commit _does_ return TARGET_ERROR for
DATA_PROTECT.
I need to dig deeper, but I think Hannes gets back to work on Monday.
Mike
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Write protected devices, unexpected dm-multipath queueing
2012-01-06 22:55 ` Mike Snitzer
@ 2012-01-06 23:20 ` Mike Snitzer
2012-01-07 9:39 ` Christophe Varoqui
0 siblings, 1 reply; 5+ messages in thread
From: Mike Snitzer @ 2012-01-06 23:20 UTC (permalink / raw)
To: christophe.varoqui, device-mapper development; +Cc: cyril.galibern, linux-scsi
On Fri, Jan 06 2012 at 5:55pm -0500,
Mike Snitzer <snitzer@redhat.com> wrote:
> On Fri, Jan 06 2012 at 5:32pm -0500,
> Mike Snitzer <snitzer@redhat.com> wrote:
>
> > 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 ?
Aha, now I remember, I applied all the changes for differentiated SCSI
IO errors for -131.el6 (aka RHEL6.1) _except_ I overlooked one disjoint
yet crucial commit that went upstream much earlier, see this one-liner:
http://git.kernel.org/linus/ad63082626f99651d261ccd8698ce4e997362f7e
So the code for differentiated IO errors was dormant in RHEL6.1, it was
noticed before 6.1 GA'd but was deemed too risky to enable so late in
the 6.1 release cycle. It has since been enabled in RHEL6.2.
And yes it was a pretty embarassing oversight at the time... now you've
allowed me to relive that embarassment ;)
Long story short, apply that patch or upgrade to the RHEL6.2 kernel.
HTH,
Mike
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Write protected devices, unexpected dm-multipath queueing
2012-01-06 23:20 ` Mike Snitzer
@ 2012-01-07 9:39 ` Christophe Varoqui
0 siblings, 0 replies; 5+ messages in thread
From: Christophe Varoqui @ 2012-01-07 9:39 UTC (permalink / raw)
To: Mike Snitzer; +Cc: device-mapper development, cyril.galibern, linux-scsi
On ven., 2012-01-06 at 18:20 -0500, Mike Snitzer wrote:
> On Fri, Jan 06 2012 at 5:55pm -0500,
> Mike Snitzer <snitzer@redhat.com> wrote:
>
> > On Fri, Jan 06 2012 at 5:32pm -0500,
> > Mike Snitzer <snitzer@redhat.com> wrote:
> >
> > > 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 ?
>
> Aha, now I remember, I applied all the changes for differentiated SCSI
> IO errors for -131.el6 (aka RHEL6.1) _except_ I overlooked one disjoint
> yet crucial commit that went upstream much earlier, see this one-liner:
> http://git.kernel.org/linus/ad63082626f99651d261ccd8698ce4e997362f7e
>
> So the code for differentiated IO errors was dormant in RHEL6.1, it was
> noticed before 6.1 GA'd but was deemed too risky to enable so late in
> the 6.1 release cycle. It has since been enabled in RHEL6.2.
>
> And yes it was a pretty embarassing oversight at the time... now you've
> allowed me to relive that embarassment ;)
>
> Long story short, apply that patch or upgrade to the RHEL6.2 kernel.
Thank you for the explanation, and sorry for the ambarassment. By bad,
for not having tried the upgrade before nosing around ;)
Regards,
cvaroqui
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Write protected devices, unexpected dm-multipath queueing
2012-01-06 22:32 ` Write protected devices, unexpected dm-multipath queueing Mike Snitzer
2012-01-06 22:55 ` Mike Snitzer
@ 2012-01-09 8:01 ` Hannes Reinecke
1 sibling, 0 replies; 5+ messages in thread
From: Hannes Reinecke @ 2012-01-09 8:01 UTC (permalink / raw)
To: Mike Snitzer
Cc: christophe.varoqui, device-mapper development, cyril.galibern,
linux-scsi
On 01/06/2012 11:32 PM, Mike Snitzer wrote:
> 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
>
Yes, that's correct. We'll need to check for this case, too.
I'll be sending a patch.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-01-09 8:01 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1325878251.19595.13.camel@lapoo.opensvc.com>
2012-01-06 22:32 ` Write protected devices, unexpected dm-multipath queueing Mike Snitzer
2012-01-06 22:55 ` Mike Snitzer
2012-01-06 23:20 ` Mike Snitzer
2012-01-07 9:39 ` Christophe Varoqui
2012-01-09 8:01 ` Hannes Reinecke
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox