[dm-devel] an interesting note on LUN coalescing

Brian Bunker brian at purestorage.com
Thu May 15 16:35:53 UTC 2014

I have added a line to multipathd/main.c to see if I could get some more information when the dm device gets the wrong LUN’s underneath. So I have a dm device:

3624a9370c90d0d631ef8783e00010004 dm-2 PURE,FlashArray
size=500G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=0 status=active
  |- 3:0:0:3 sdav 66:240 active undef running
  |- 0:0:0:3 sdbc 67:96  active undef running
  |- 6:0:0:3 sdbt 68:112 active undef running
  |- 5:0:0:3 sdbu 68:128 active undef running
  |- 7:0:0:1 sdal 66:80  active undef running
  |- 2:0:0:1 sdb  8:16   active undef running
  `- 4:0:0:1 sdk  8:160  active undef running

I can see that when sdk is added to the dm, it is added to a dm ending in 004, but the serial number of sdk clearly ends in 002:

May 15 05:09:55 rb9init4 multipathd: sdk: add path (uevent)
May 15 05:09:55 rb9init4 multipathd: 3624a9370c90d0d631ef8783e00010004: load table [0 1048576000 multipath 0 0 1 1 round-robin 0 7 1 66:240 1 67:96 1 68:112 1 68:128 1 66:80 1 8:16 1 8:160 1]
May 15 05:09:55 rb9init4 multipathd: sdk path added to devmap 3624a9370c90d0d631ef8783e00010004
May 15 05:09:55 rb9init4 multipathd: sdk [8:160]: path has a serial C90D0D631EF8783E00010002

I am printing out pp->serial to get the serial number of sdk. 

Any idea why the lookup of wwid for a path gets clearly the wrong one? At some level the data structure has the right serial number. Is there a check missing that belongs there? Is there a bug in the lookup itself? I will keep adding more debug lines to get to the bottom of the problem if there are no ideas. This definitely leads to a corruption when it happens.


Brian Bunker
brian at purestorage.com

More information about the dm-devel mailing list