<br><br><div><span class="gmail_quote">On 3/29/06, <b class="gmail_sendername">Murthy, Narasimha Doraswamy (STSD)</b> <<a href="mailto:narasimha.murthy@hp.com">narasimha.murthy@hp.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;">









<p align="left"><span lang="en-us"><font face="Arial" size="2">Hi Alasdair,</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">We are seeing</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">an IO error problem on a DM device, when the</font></span>
<span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">HBA</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">ports of another host</font></span><span lang="en-us"></span>
<span lang="en-us"><font face="Arial" size="2">,</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> seen through the same switch</font></span><span lang="en-us"></span><span lang="en-us">
 <font face="Arial" size="2">are</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> disabled/enable</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">
. We are n</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">ot understanding on why the paths are failed when ports on other hosts are disabled. Please explain. </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Below is the problem description and steps to reproduce.</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><b><font face="Arial" size="2">Problem     : </font></b></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">I/O Error on DM device</font></span><span lang="en-us">
<b><i></i></b></span><span lang="en-us"><b><i><font color="#000080" face="Arial" size="2"></font></i></b></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">on one host when</font></span><span lang="en-us">
</span><span lang="en-us"><font face="Arial" size="2"> HBA ports of</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">another</font></span><span lang="en-us"></span><span lang="en-us">
<font face="Arial" size="2"> host</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> are disabled.</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><b><font face="Arial" size="2">OS distros :</font></b></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">  RHEL4.0 U2/U3.</font></span></p>

<p align="left"><span lang="en-us"><b><font face="Arial" size="2">HOW-TO</font></b></span><span lang="en-us"><b></b></span><span lang="en-us"><b><font face="Arial" size="2"> reproduce the problem</font></b></span><span lang="en-us">
<b></b></span><span lang="en-us"><b><font color="#000080" face="Arial" size="2">:</font></b></span><span lang="en-us"><b></b></span><span lang="en-us"><b></b></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">1. Configure</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> 2 storage</font></span><span lang="en-us"></span><span lang="en-us">
 <font face="Arial" size="2">arrays</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> (</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">A1</font></span>
<span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">, A2</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">) and two</font></span><span lang="en-us"></span><span lang="en-us">
 <font face="Arial" size="2">host (</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">H1</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">, H2) in</font>
</span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> the same zone, so that both the hosts can see</font></span><span lang="en-us"><b><i></i></b></span><span lang="en-us"><b><i><font color="#000080" face="Arial" size="2">
</font></i></b></span><span lang="en-us"></span><span lang="en-us"> <font color="#000080" face="Arial" size="2">both</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> the arrays.</font>
</span><span lang="en-us"></span><span lang="en-us"><font color="#000080" face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">Create and p</font></span><span lang="en-us">
</span><span lang="en-us"><font face="Arial" size="2">resent LUNs</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">
(L1,</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">L2) from array</font></span><span lang="en-us">
</span><span lang="en-us"><font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">(A1) to host</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">
</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">(H1)</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">2. Stop the multipathd daemon</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us">
 <font face="Arial" size="2">(for testing purpose on why the</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">IO error when ports of other hosts are failed)</font></span><span lang="en-us">
</span><span lang="en-us"><font face="Arial" size="2">.</font></span><span lang="en-us"></span><span lang="en-us"><font color="#000080" face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">
Not stopping it may take long time to reproduce the problem.</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">3. Start I/O on</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">DM device representing</font></span><span lang="en-us">
</span><span lang="en-us"><font color="#000080" face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">luns L1 and L2</font></span><span lang="en-us"></span><span lang="en-us">
 <font face="Arial" size="2">on host H1</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">. We used</font></span><span lang="en-us"><b></b></span><span lang="en-us"><b> <font face="Arial" size="2">
dt tool</font></b></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> for IO exercising.</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">4.</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">Disable</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">
 host ports of host H2 or any port of array A2</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> one after the other</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">
 (few times)</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> OR disable and enable</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">the same</font>
</span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> port of the other host</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">–</font></span><span lang="en-us">
</span><span lang="en-us"><font face="Arial" size="2"> few times (may be 4-5 times).</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">5. Applicatio</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">n (dt tool)</font></span><span lang="en-us"></span><span lang="en-us">
<font face="Arial" size="2"> aborts with IO error on host H1.</font></span></p>
<br>

<p align="left"><span lang="en-us"><font face="Arial" size="2">=====</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">Snippet of</font></span><span lang="en-us"><b></b></span><span lang="en-us">
<b><font color="#000080" face="Arial" size="2"> s</font></b></span><span lang="en-us"><b></b></span><span lang="en-us"><b><font face="Arial" size="2">ys log output</font></b></span><span lang="en-us"></span><span lang="en-us">
<font face="Arial" size="2"> (while</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">d</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">o</font></span>
<span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">ing</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> I/O on /dev/dm-0</font></span><span lang="en-us"></span><span lang="en-us">
<font face="Arial" size="2">)</font></span><span lang="en-us"></span><span lang="en-us"></span></p>
<br>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:14 apwtest52 kernel: SCSI error : <2 0 0 1> return code = 0x20000            </font></span></p></div></blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;"><p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:14 apwtest52 kernel: end_request: I/O error, dev sda, sector 1584600</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:14 apwtest52 kernel: device-mapper: dm-multipath: Failing path 8:0.     <=================path failed, after disabling/enabling the H2 host port 1 
</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:14 apwtest52 kernel: end_request: I/O error, dev sda, sector 1584608</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: SCSI error : <3 0 1 1> return code = 0x20000                 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sdg, sector 861400 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: device-mapper: dm-multipath: Failing path 8:96.   <=================path failed, after disabling/enabling  the H2 host port 2
</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sdg, sector 861408 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: SCSI error : <3 0 0 1> return code = 0x20000</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 452760 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: device-mapper: dm-multipath: Failing path 8:64.  <=================path failed after disabling/enabling the H2 host port 1
</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 452768 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: SCSI error : <3 0 0 1> return code = 0x20000</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 453784 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 453792 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: SCSI error : <3 0 0 1> return code = 0x20000</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 454808 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 454816</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: SCSI error : <3 0 0 1> return code = 0x20000</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 863960</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:47:45 apwtest52 kernel: end_request: I/O error, dev sde, sector 863968 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: SCSI error : <2 0 1 1> return code = 0x20000</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: end_request: I/O error, dev sdc, sector 935384 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: device-mapper: dm-multipath: Failing path 8:32.  <================= after disabling/enabling  the H2 host port 2</font></span>
</p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: end_request: I/O error, dev sdc, sector 935392 </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116924    <============All path to the device /dev/dm-0 failed</font></span>
</p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116925</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116926</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116927</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116928</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116929</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116930</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116931</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116932</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116933</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116934</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116935</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116936</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116937</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116938</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116939</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Feb  1 11:48:40 apwtest52 kernel: Buffer I/O error on device dm-0, logical block 116940</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">                         </font></span></p>

<p align="left"><span lang="en-us"><b><font face="Arial" size="2">Observations :</font></b></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">      As we do the port failur</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">e</font></span><span lang="en-us"></span>
<span lang="en-us"> <font face="Arial" size="2">on the other host</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">, paths of the dm device is failed and the subsequent por</font></span>
<span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">t</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">(i.e A2 or H2 ports) disabling/enabling results into more numbers of path failure and that leads into all path failure condition
</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">, w</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">hich in turn results into IO error on RHEL4.0
 U2/U3.</font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">     Through the device-mapper debug</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">driver we</font></span><span lang="en-us">
</span><span lang="en-us"><font face="Arial" size="2"> are finding that the there is no valid path in</font></span><span lang="en-us"><b><i></i></b></span><span lang="en-us"><b><i> <font face="Arial" size="2">__choose_pgpath()
</font></i></b></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> and </font></span><span lang="en-us"><b><i></i></b></span><span lang="en-us"><b><i> <font face="Arial" size="2">m->current_pgpath
</font></i></b></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">(m is pointer to struct multipath)</font>
</span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">is null when it comes to map_io() in dm-mpath.c.</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Another observation</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">is that we are not seeing any IO errors when the</font>
</span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">same</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> test is executed on SLES9 SP3/SP4.</font></span>
</p></div></blockquote><div><br><div>Are you using the Qlogic or Emulex driver with your RHEL4 and SLES9 systems? <br>
<br>The 0x20000 errors you are seeing corresponds to DID_BUS_BUSY error. This is considered one of the 'retryable' errors by the SCSI layer. As far as I know, Qlogic driver uses the DID_BUS_BUSY error return code to force a retry of I/O for various fabric events. (I think they are planning on, or maybe already have, cleaned this up in their driver to remove this hack and use block/unblock interface. This could be double-checked by looking at qlogic source code for the driver version you're using). Since dm I/O uses a failfast flag, these retryable errors won't get retried by the SCSI layer and get immediately propagated up to dm, which is probably why you're getting errors even on paths that should be okay. If this is the case, I would expect this same problem to occur on your SLES9 systems too if you're using QLogic driver. 
<br> 
<br>
I assume you're not using queue_if_no_path? From a dm and user perspective, this is the only thing I can think of to work around this issue until the patch to propagate error codes up the stack is included and/or Qlogic stops using DID_BUS_BUSY to force retries. 
<br>
<br>Thanks,<br>lan<br></div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div style="direction: ltr;"><p align="left"><span lang="en-us">
<font face="Arial" size="2">Please provide some pointers on why we are seeing this</font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">behavior</font></span><span lang="en-us"></span><span lang="en-us">
<font face="Arial" size="2"></font></span><span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">or</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2"> is this</font></span>
<span lang="en-us"></span><span lang="en-us"> <font face="Arial" size="2">a know</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">n</font></span><span lang="en-us"></span><span lang="en-us">
<font face="Arial" size="2"> thing at this point in time</font></span><span lang="en-us"></span><span lang="en-us"><font face="Arial" size="2">?</font></span><span lang="en-us"></span><span lang="en-us"></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">Thanks and regards</font></span></p></div><div style="direction: ltr;"><span class="sg">

<p align="left"><span lang="en-us"><font face="Arial" size="2">-Murthy</font></span></p>
<br>
<br>
<br>
<br>
<br>
<br>

<p align="left"><span lang="en-us"><font face="Arial" size="2"> </font></span></p>

<p align="left"><span lang="en-us"><font face="Arial" size="2">  </font></span></p>
<br>



</span></div><br>--<br>dm-devel mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:dm-devel@redhat.com">dm-devel@redhat.com</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="https://www.redhat.com/mailman/listinfo/dm-devel" target="_blank">
https://www.redhat.com/mailman/listinfo/dm-devel</a><br><br></blockquote></div><br>