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 ! |
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel