[Bug 1908756] Re: Ubuntu 20.10 - elfutils unwinding broken for s390 compat
Brian Murray
1908756 at bugs.launchpad.net
Tue Jan 12 23:34:26 UTC 2021
Hello bugproxy, or anyone else affected,
Accepted elfutils into groovy-proposed. The package will build now and
be available at
https://launchpad.net/ubuntu/+source/elfutils/0.181-1ubuntu0.1 in a few
hours, and then in the -proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed. Your feedback will aid us getting this
update out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
groovy to verification-done-groovy. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-groovy. In either case, without details of your testing we will
not be able to proceed.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance for helping!
N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.
** Changed in: elfutils (Ubuntu Groovy)
Status: In Progress => Fix Committed
** Tags added: verification-needed verification-needed-groovy
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to elfutils in Ubuntu.
https://bugs.launchpad.net/bugs/1908756
Title:
Ubuntu 20.10 - elfutils unwinding broken for s390 compat
Status in Ubuntu on IBM z Systems:
In Progress
Status in elfutils package in Ubuntu:
Fix Released
Status in elfutils source package in Groovy:
Fix Committed
Status in elfutils source package in Hirsute:
Fix Released
Bug description:
SRU Bug Template:
=================
[Impact]
* There is an endianess problem in pid_memory_read that impacts
s390x.
* Due to this elfutils biarch test fails on s390x doing unwinding for
a 32 bit process.
[Fix]
* e4d985a3c1c873f77d20fa0cd421458cc2824996 e4d985a3 "IBM Z: Fix endianess problem in pid_memory_read"
[Test Case]
* Have an Ubuntu Server 20.10 system or newer installed on LPAR, z/VM or KVM that comes with elfutils 0.181 or 0.182.
* Run the test script: 'run-backtrace-native-biarch.sh'
* It either core dumps without the patch in place - look for "/test-subr.sh: line 84: 376822 Aborted (core dumped)" or succeeds.
[Where problems could occur]
* If the translation is not done right (shift of the upper 4 bytes + down on big endian 64 bit targets) the situation is broken in the same way, and things stay the same.
* But in worst case the changes in 'pid_memory_read' of /libdwfl/linux-pid-attach.c could have a negative impact even on architectures other than s390x, in case the check for the endiness is wrong.
* But the changes are quite traceable and the additional code that fixes the endianess problem is really only active on a big endian architecture.
[Other]
* The fix is upstream accepted with elfutils > 0.182.
__________
---Problem Description---
libdw unwinding fails for 32 bit binaries.
Elfutils biarch test currently fails on s390x doing unwinding for a 32
bit process.
FAIL: run-backtrace-native-biarch.sh
====================================
0x557e7000 0x557eb000 /root/elfutils/tests/backtrace-child-biarch
0x7dba4000 0x7dd51000 /usr/lib/libc-2.32.so
0x7dd53000 0x7dd70000 /usr/lib/libpthread-2.32.so
0x7dd7f000 0x7dda6000 /usr/lib/ld-2.32.so
TID 376858:
# 0 0x7dd6668a raise
# 1 0x7fd0ef60 - 1 <null>
/root/elfutils/tests/backtrace: dwfl_thread_getframes: No DWARF information found
backtrace: backtrace.c:114: callback_verify: Assertion `symname != NULL && strcmp (symname, "sigusr2") == 0' failed.
./test-subr.sh: line 84: 376822 Aborted (core dumped) LD_LIBRARY_PATH="${built_library_path}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" $VALGRIND_CMD "$@"
backtrace-child-biarch: no main
FAIL run-backtrace-native-biarch.sh (exit status: 1)
Patch has already been posted and upstream committed:
https://sourceware.org/pipermail/elfutils-devel/2020q4/003149.html
Please pick up the following commit for the next release:
commit e4d985a3c1c873f77d20fa0cd421458cc2824996
Author: Andreas Krebbel <krebbel at linux.ibm.com>
Date: Thu Nov 19 20:32:24 2020 +0100
IBM Z: Fix endianess problem in pid_memory_read
The cached reads lack the big endian adjustments done in the fallback
path.
Signed-off-by: Andreas Krebbel <krebbel at linux.ibm.com>
The patch applies cleanly ontop of elfutils_0.181-1.
====
strace right now is not built with unwinding support for IBM Z although both variants should work - libdw and libunwind.
Other distros use libdw from elfutils while Ubuntu on x86 appears to
use libunwind. libdw and libunwind do support IBM Z.
It would be good to build strace with unwinding support for Z.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1908756/+subscriptions
More information about the foundations-bugs
mailing list