Bug ID 1204731
Summary multipath -t segfault with multipath-tools 0.9.2
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Basesystem
Assignee screening-team-bugs@suse.de
Reporter martin.wilck@suse.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Version 0.9.2 crashes with a segmentation fault:

> $ multipath -t 2
> 612.793257 | couldn't open configuration dir '/etc/multipath/conf.d': Permission denied
> [1]    13266 segmentation fault (core dumped)  multipath -t 2

This appears to be a subtle interaction between the separation of libmultipath
and libmpathutil we did in 0.9.1 and the libmultipath ABI version bump in
0.9.2.

Some symbols ({get,put}_multipath_config, libmp_verbosity, and udev) are
exported by both libmpathutil and
libmultipath. The symbols exported by libmpathutil are dummies, intended to be
overridden by libmultipath using the "breadth-first" symbol lookup specified by
ELF 1. The dummy symbols are only used by programs not linking to libmultipath,
i.e. only multipathc.

Because we're using ABI versioning, code in libmpathutil actually exports and
references get_multipath_config@LIBMULTIPATH_16.0.0. That worked until 0.9.1,
because both libraries were using the same ABI version, and
get_multipath_config@LIBMULTIPATH_16.0.0 from libmultipath overrides the symbol
from libmpathutil. But in 0.9.2, we bumped the ABI version of libmultipath to
17.0.0. libmultipath now exports (only)
get_multipath_config@LIBMULTIPATH_17.0.0, which doesn't override
get_multipath_config@LIBMULTIPATH_16.0.0 from libmpathutil.

The effect is that references to these duplicate symbols, when done from
libmpathutil, are resolved to the libmpathutil dummy symbols, which is wrong
and causes the crash.

This affects only multipath, not multipathd, because multipathd overrides
get_multipath_config with yet another symbol. Same for put_multipath_config and
libmp_verbosity, but not for udev.


Upstream Issue: https://github.com/opensvc/multipath-tools/pull/47
Fix: https://github.com/opensvc/multipath-tools/pull/48


You are receiving this mail because: