New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
multipathd segmentation fault (-Bsymbolic-functions in LDFLAGS) #26
Comments
|
The issue happens due to injection of the |
|
Right, b29b5fd relies on the linker's default behavior to override library-provided symbols. Using Hints appreciated. |
|
I have found no way to annotate these functions such that they are exempted from |
|
@athos-ribeiro , after discussion with our toolchain experts, could you try this, and see if the error goes away? The |
If libmultipath is compiled with -Bsymbolic-functions, multipathd segfaults (opensvc#26). Fix this with a --dynamic-list linker option, forcing the weak symbols not to be resolved at link time.
|
I've pushed a tentative patch to https://github.com/mwilck/multipath-tools/tree/dynamic-list. Please test if you're able to compile and run that code with |
|
I'm not going to make an official patch with |
|
Closing per previous comment. |
The b29b5fd commit mentions that the config struct should be initialized with init_config.
Once b29b5fd is applied in Ubuntu's multipath-tools, the multipathd service
no longer starts upon a system boot and a segmentation fault is thrown.
The situation improves once 6236b5a is applied, ensuring the service can
start. However, the segmentation fault is still observed in specific cases
such as upon autopkgtest runs of debian/tests/tgtbasedmpaths.
It seems that the issue is triggered in specific configuration read situations in multipathd. I am still working on a minimal reproducer.
This following patch fixes such occurrences by initializing the configuration file
with the init_config, as suggested in b29b5fd.
Finally, here is a dump of the code path that is leading to the segfault:
The text was updated successfully, but these errors were encountered: