[dm-devel] i/o error due to all path failure with rdac
Chandra Seetharaman
sekharan at us.ibm.com
Thu Oct 30 23:35:29 UTC 2008
Can you try this patch.
---------
Signed-off-by: Chandra Seetharaman <sekharan at us.ibm.com>
Index: linux-2.6.27/drivers/scsi/device_handler/scsi_dh_rdac.c
===================================================================
--- linux-2.6.27.orig/drivers/scsi/device_handler/scsi_dh_rdac.c
+++ linux-2.6.27/drivers/scsi/device_handler/scsi_dh_rdac.c
@@ -386,6 +386,7 @@ static int check_ownership(struct scsi_d
struct c9_inquiry *inqp;
h->lun_state = RDAC_LUN_UNOWNED;
+ h->state = RDAC_STATE_ACTIVE;
err = submit_inquiry(sdev, 0xC9, sizeof(struct c9_inquiry), h);
if (err == SCSI_DH_OK) {
inqp = &h->inq.c9;
---
On Thu, 2008-10-30 at 17:21 -0600, Moger, Babu wrote:
> Looks like eventually we get rport failure after the controller offline.
>
>
> I have attached the messages file. I am running raw IO.
>
> Also, please note that I have added following lines in check_sense. This condition (quiescence) should be retried.
>
>
> case UNIT_ATTENTION:
> if ((sense_hdr->asc == 0x29 && sense_hdr->ascq == 0x00) ||
> (sense_hdr->asc == 0x8b && sense_hdr->ascq == 0x02))
> /*
> * Power On, Reset, or Bus Device Reset, just retry.
> */
> return ADD_TO_MLQUEUE;
>
>
>
> Thanks
> Babu Moger
>
> -----Original Message-----
> From: Chandra Seetharaman [mailto:sekharan at us.ibm.com]
> Sent: Thursday, October 30, 2008 5:24 PM
> To: Moger, Babu
> Cc: device-mapper development; linux-scsi at vger.kernel.org
> Subject: RE: [dm-devel] i/o error due to all path failure with rdac
>
>
> On Thu, 2008-10-30 at 14:30 -0600, Moger, Babu wrote:
> > This is what happens in my case
> >
> > When the active path is failed, the dh handler calls rdac_activate to activate the passive path.
> > Then check_ownership is called. As you know check_ownership sends inquiry (page c9). Looking at the
> > response this function sets the lun_state(h->lun_state) to RDAC_LUN_OWNED.
> >
> > If lun_state is set to RDAC_LUN_OWNED then send_mode_select will not be called. This is what
> > happens in my case.
>
> Ok. Now it is clear. I thought the port was disabled.
>
> The rport failure in the log you sent made me think that it was a port
> disable. Why was there a rport failure ?
>
> Can you add these two lines at the top of
> scsi_dn_rdac.c:rdac_check_sense() function, retest and send me the log.
> ------------
> sdev_printk(KERN_ERR, sdev, "sense_key:%x; asc %c; ascq %x\n",
> sense_hdr->sense_key, sense_hdr->asc, sense_hdr->ascq);
> -----------
> I want to see if we are getting any special sense that we are not
> handling.
More information about the dm-devel
mailing list