[dm-devel] problem with multipathd, not all paths added to adisk on boot

Sebastian Reitenbach sebastia at l00-bugdead-prods.de
Mon Nov 10 12:13:15 UTC 2008


Hi,

Sebastian Reitenbach <sebastia at l00-bugdead-prods.de>,device-mapper 
development <dm-devel at redhat.com> wrote: 
> Hi,
> 
> Mike Anderson <andmike at linux.vnet.ibm.com> wrote: 
> > Sebastian Reitenbach <sebastia at l00-bugdead-prods.de> wrote:
> > > /dev/sdb in group vm-store, on 1:0:0:0 is not listed, however, lsscsi
> > > has the disk in the list:
> > > [1:0:0:0]    disk    IBM      1814      FAStT  0916  /dev/sdb
> > > 
> > > for the disk that is not added to the group, I see sth like this 
> > > in /var/log/messages:
> > > Nov  6 12:32:36 srv24 kernel: end_request: I/O error, dev sdb, sector 
0
> > > Nov  6 12:32:39 srv24 kernel: end_request: I/O error, dev sdb, sector 
0
> > > Nov  6 12:32:39 srv24 kernel: end_request: I/O error, dev sdb, sector 
8
> > > Nov  6 12:32:42 srv24 kernel: end_request: I/O error, dev sdb, sector 
0
> > > Nov  6 12:32:42 srv24 multipathd: sdb: add path (uevent)
> > > Nov  6 12:32:42 srv24 multipathd: sdb: spurious uevent, path already 
in 
> > > pathvec
> > > Nov  6 12:32:42 srv24 multipathd: sdb: failed to get path uid
> > > Nov  6 12:32:45 srv24 kernel: end_request: I/O error, dev sdb, sector 
0
> > > 
> > 
> > What does running "/sbin/scsi_id -g -u -s /block/sdb" return when you 
are
> > in this failing mode?
> /sbin/scsi_id -g -u -s /block/sdb
> 3600a0b800048b3fe00000431490e90ce
> 
> 
> > 
> > If scsi_id fails what does "sg_inq -v /dev/sdb" and
> > "cat /sys/block/sdb/device/state" return?
> It doesn't fail, but anyways:
> sg_inq -v /dev/sdb
>     inquiry cdb: 12 00 00 00 24 00
> standard INQUIRY:
>     inquiry cdb: 12 00 00 00 4a 00
>   PQual=0  Device_type=0  RMB=0  version=0x05  [SPC-3]
>   [AERC=0]  [TrmTsk=0]  NormACA=1  HiSUP=1  Resp_data_format=2
>   SCCS=0  ACC=0  TGPS=0  3PC=0  Protect=0  BQue=0
>   EncServ=1  MultiP=0  [MChngr=0]  [ACKREQQ=0]  Addr16=0
>   [RelAdr=0]  WBus16=1  Sync=1  Linked=0  [TranDis=0]  CmdQue=1
>   Clocking=0x0  QAS=0  IUS=0
>     length=74 (0x4a)   Peripheral device type: disk
>  Vendor identification: IBM
>  Product identification: 1814      FAStT
>  Product revision level: 0916
>     inquiry cdb: 12 01 00 00 fc 00
>     inquiry: requested 252 bytes but  got 21 bytes
>     inquiry cdb: 12 01 80 00 fc 00
>     inquiry: requested 252 bytes but  got 20 bytes
>  Unit serial number: SG83955342
> 
> cat /sys/block/sdb/device/state
> running
> 
I added some more verbosity when starting up multipathd. Then before the 
error message regarding the path is already in the pathvec, I see the 
following:
...
Nov 10 13:42:08 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:1:2): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:09 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:0:0): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:09 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:1:2): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:09 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:0:0): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:09 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:1:2): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:10 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:0:0): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:10 srv24 kernel: end_request: I/O error, dev sdb, sector 0
Nov 10 13:42:10 srv24 kernel: printk: 5 messages suppressed.
Nov 10 13:42:10 srv24 kernel: Buffer I/O error on device sdb, logical block 
0
Nov 10 13:42:10 srv24 multipathd: uevent 'add' from '/block/sdb'
Nov 10 13:42:10 srv24 multipathd: UDEV_LOG=3
Nov 10 13:42:10 srv24 multipathd: ACTION=add
Nov 10 13:42:10 srv24 multipathd: DEVPATH=/block/sdb
Nov 10 13:42:10 srv24 multipathd: SUBSYSTEM=block
Nov 10 13:42:10 srv24 multipathd: SEQNUM=1278
Nov 10 13:42:10 srv24 multipathd: MINOR=16
Nov 10 13:42:10 srv24 multipathd: MAJOR=8
Nov 10 13:42:10 srv24 multipathd: 
PHYSDEVPATH=/devices/pci0000:00/0000:00:02.0/0000:10:00.0/0000:11:00.0/0000:13:00.0/host1/rport-1:0-0/target1:0:0/1:0:0:0


Nov 10 13:42:10 srv24 multipathd: PHYSDEVBUS=scsi
Nov 10 13:42:10 srv24 multipathd: PHYSDEVDRIVER=sd
Nov 10 13:42:10 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:1:2): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:10 srv24 multipathd: UDEVD_EVENT=1
Nov 10 13:42:10 srv24 multipathd: ID_VENDOR=IBM
Nov 10 13:42:10 srv24 multipathd: ID_MODEL=1814_FAStT
Nov 10 13:42:10 srv24 multipathd: ID_REVISION=0916
Nov 10 13:42:10 srv24 multipathd: 
ID_SERIAL=3600a0b800048b3fe00000431490e90ce
Nov 10 13:42:10 srv24 multipathd: ID_TYPE=disk
Nov 10 13:42:10 srv24 multipathd: ID_BUS=scsi
Nov 10 13:42:10 srv24 multipathd: 
ID_PATH=pci-0000:13:00.0-fc-0x200400a0b848b3ff:0x0000000000000000
Nov 10 13:42:10 srv24 multipathd: DEVNAME=/dev/sdb
Nov 10 13:42:10 srv24 multipathd: 
DEVLINKS=/dev/disk/by-id/scsi-3600a0b800048b3fe00000431490e90ce
/dev/disk/by-path/pci-0000:13:00.0-fc-0x200400a0b848b3ff:0x0000
Nov 10 13:42:10 srv24 multipathd: sdb: add path (uevent)
Nov 10 13:42:10 srv24 multipathd: sdb: spurious uevent, path already in 
pathvec
Nov 10 13:42:10 srv24 multipathd: sdb: failed to get path uid
Nov 10 13:42:10 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:0:0): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:10 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:0:0): Mid-layer 
underflow detected (3000 of 3000 bytes)...returning error status.
Nov 10 13:42:10 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:1:2): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
Nov 10 13:42:11 srv24 kernel: qla2xxx 0000:13:00.0: scsi(1:0:0:0): Mid-layer 
underflow detected (1000 of 1000 bytes)...returning error status.
...

I also recognized, when I just restart multipathd after above error, then 
sdb is immediately added to the path.

I also tried combinations of other qla2xxx parameters to raise some timeout 
values..., e.g.:
options qla2xxx qlport_down_retry=5 ql2xlogintimeout=30 
ql2xloginretrycount=5 ql2xplogiabsentdevice=1 ql2xfdmienable=1 
ql2xmaxqdepth=64 ql2xextended_error_logging=1 ql2xqfullrampup=180
but that did not produced any observable difference.

so still no real solution, any idea what could block multipathd to add sdb 
to the path on first startup?

kind regards
Sebastian




More information about the dm-devel mailing list