Comment 19 for bug 1468897

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Hi @mathieu-tl,

Marking as verification-failed since the version from -proposed hits a segfault in 'multipath -l'.
Here are some details/stack trace:

It segfaults:

 # multipath -l
 Segmentation fault

Trusty / 14.04.3:

 # lsb_release -d
 Description: Ubuntu 14.04.3 LTS

 # uname -a
 Linux plzp17 3.19.0-29-generic #31~14.04.1-Ubuntu SMP Thu Sep 10 09:45:11 UTC 2015 ppc64le ppc64le ppc64le GNU/Linux

Using multipath-tools from trusty-proposed (0.4.9-3ubuntu7.5)

 # apt-cache policy multipath-tools
 multipath-tools:
   Installed: 0.4.9-3ubuntu7.5
   Candidate: 0.4.9-3ubuntu7.5
   Version table:
  *** 0.4.9-3ubuntu7.5 0
  500 http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed/main ppc64el Packages
  100 /var/lib/dpkg/status
      0.4.9-3ubuntu7.4 0
  500 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main ppc64el Packages
      0.4.9-3ubuntu7 0
  500 http://ports.ubuntu.com/ubuntu-ports/ trusty/main ppc64el Packages

 # dpkg -l | grep 'multipath\|kpartx'
 ii kpartx 0.4.9-3ubuntu7.5 ppc64el create device mappings for partitions
 ii kpartx-boot 0.4.9-3ubuntu7.5 all Provides kpartx during boot
 ii multipath-tools 0.4.9-3ubuntu7.5 ppc64el maintain multipath block device access
 ii multipath-tools-boot 0.4.9-3ubuntu7.5 all Support booting from multipath devices

Problem contained in libmultipath, not any external library/component, in the initialization phase:

 # gdb multipath
 GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
 ...
 (gdb) run -l
 Starting program: /sbin/multipath -l
 ...
 Program received signal SIGSEGV, Segmentation fault.
 0x00003fffb7e3fd70 in vector_alloc_slot () from /lib/libmultipath.so.0
 (gdb) bt
 #0 0x00003fffb7e3fd70 in vector_alloc_slot () from /lib/libmultipath.so.0
 #1 0x00003fffb7e3e200 in keyword_alloc () from /lib/libmultipath.so.0
 #2 0x00003fffb7e3e2c4 in install_keyword_root () from /lib/libmultipath.so.0
 #3 0x00003fffb7e5ac34 in init_keywords () from /lib/libmultipath.so.0
 #4 0x00003fffb7e4a54c in load_config () from /lib/libmultipath.so.0
 #5 0x0000000010002bcc in ?? ()
 #6 0x00003fffb7c94d00 in generic_start_main (main=0x10002b10, argc=<optimized out>,
     argv=0x3ffffffffa28, auxvec=0x3ffffffffb30, init=<optimized out>, rtld_fini=<optimized out>,
     stack_end=<optimized out>, fini=<optimized out>) at ../csu/libc-start.c:287
 #7 0x00003fffb7c94ef8 in __libc_start_main (argc=<optimized out>, argv=<optimized out>,
     ev=<optimized out>, auxvec=<optimized out>, rtld_fini=<optimized out>, stinfo=<optimized out>,
     stack_on_entry=<optimized out>) at ../sysdeps/unix/sysv/linux/powerpc/libc-start.c:93
 #8 0x0000000000000000 in ?? ()
 (gdb)

Downgrading to version in trusty-updates (0.4.9-3ubuntu7.4):

 # apt-get install {multipath-tools,kpartx}{,-boot}=0.4.9-3ubuntu7.4
 ...
 The following packages will be DOWNGRADED:
   kpartx kpartx-boot multipath-tools multipath-tools-boot
 ...
 Get:1 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main multipath-tools-boot all 0.4.9-3ubuntu7.4 [6,070 B]
 Get:2 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main multipath-tools ppc64el 0.4.9-3ubuntu7.4 [108 kB]
 Get:3 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main kpartx-boot all 0.4.9-3ubuntu7.4 [2,116 B]
 Get:4 http://ports.ubuntu.com/ubuntu-ports/ trusty-updates/main kpartx ppc64el 0.4.9-3ubuntu7.4 [19.0 kB]
 ...

Now it works fine:

 # multipath -l
 36005076303ffd2a40000000000000345 dm-2 AIX,VDASD
 size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
 `-+- policy='round-robin 0' prio=-1 status=active
   |- 0:0:4:0 sdd 8:48 active undef running
   `- 1:0:4:0 sdh 8:112 active undef running
 36005076303ffd2a40000000000000344 dm-1 AIX,VDASD
 size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
 `-+- policy='round-robin 0' prio=-1 status=active
   |- 0:0:3:0 sdc 8:32 active undef running
   `- 1:0:3:0 sdg 8:96 active undef running
 36005076303ffd2a40000000000000343 dm-0 AIX,VDASD
 size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
 `-+- policy='round-robin 0' prio=-1 status=active
   |- 0:0:2:0 sdb 8:16 active undef running
   `- 1:0:2:0 sdf 8:80 active undef running

 # echo $?
 0