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@xxxxxxxxxx] Sent: Thursday, October 30, 2008 5:24 PM To: Moger, Babu Cc: device-mapper development; linux-scsi@xxxxxxxxxxxxxxx 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.
Attachment:
messages
Description: messages