[dm-devel] libmultipath: how to handle sg_read return PATH_DOWN with some lpfc drivers?

Xieyingtai xieyingtai at huawei.com
Wed Dec 14 03:19:38 UTC 2016


Hi,
         Recently I met a problem with descrptions below:
         When /etc/multipath.conf was configured "path_checker" with readsector0 and passed in BUFFER_SIZE 4096 to
         sg_read() as below:
         int libcheck_check (struct checker * c)
{
         unsigned char buf[4096];
         unsigned char sbuf[SENSE_BUFF_LEN];
         int ret;

         ret = sg_read(c->fd, &buf[0], 4096, &sbuf[0],
                         SENSE_BUFF_LEN, c->timeout);
         ......
}
         In sg_read(), the io_hdr.dxfer_len = bs*blocks will be 4096, As a result the SG_IO may return DID_ERROR and libcheck_check
         return PATH_DOWN with some Storage devices. The lpfc_scsi logs present as below:

lpfc 0000:82:00.0: 0:0336 Rsp Ring 0 error: IOCB Data: xff000018 x60 x0 x0 xe00 x0 xa8f0b2e xa29b12
lpfc 0000:82:00.0: 0:(0):9030 FCP cmd x28 failed <0/1> status: x1 result: x0 sid: x12700 did: x11a00 oxid: xffff Data: xa8f xb2e
lpfc 0000:82:00.0: 0:(0):9024 FCP command x28 failed: x0 SNS x0 x0 Data: x8 xe38 x0 x0 x0
lpfc 0000:82:00.0: 0:(0):9025 FCP Read Underrun, expected 4096, residual 3640 Data: xe00 x28 x0
lpfc 0000:82:00.0: 0:(0):9026 FCP Read Check Error and Underrun Data: x1000 xe38 xe00 x28
lpfc 0000:82:00.0: 0:(0):0710 Iodone <0/1> cmd ffff880a6927c080, error x70000 SNS x0 x0 Data: x0 x1000
lpfc 0000:82:00.0: 0:0336 Rsp Ring 0 error: IOCB Data: xff000018 x60 x0 x0 xe00 x0 xa930e92 xa29b12
lpfc 0000:82:00.0: 0:(0):9030 FCP cmd x28 failed <0/10> status: x1 result: x0 sid: x12700 did: x11a00 oxid: xffff Data: xa93 xe92
lpfc 0000:82:00.0: 0:(0):9024 FCP command x28 failed: x0 SNS x0 x0 Data: x8 xe38 x0 x0 x0
lpfc 0000:82:00.0: 0:(0):9025 FCP Read Underrun, expected 4096, residual 3640 Data: xe00 x28 x0
lpfc 0000:82:00.0: 0:(0):9026 FCP Read Check Error and Underrun Data: x1000 xe38 xe00 x28
multipathd[23272]: check_path[1334]: 363334351003637380b7492e600000077: sdcw - readsector0 checker reports path is down

         In fact, the devices can be read and write normally but multipathd fail_path it. Is there any advice to handle this problem? Thanks

!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20161214/555be6a2/attachment.htm>


More information about the dm-devel mailing list