Date: Thu, 21 Feb 2019 09:24:43 +0100 From: Harry Schmalzbauer <freebsd@omnilan.de> To: freebsd-stable <freebsd-stable@freebsd.org> Subject: Strange rtld-elf failure on stable/12 [Was: libcrypto.so.111 linked binaries SIGSEGV (in bhyve guest)] Message-ID: <596d1486-e2af-43f7-6f3f-65881e91819d@omnilan.de> In-Reply-To: <335630bc-a558-9e31-5e2d-aee6237e83b0@omnilan.de> References: <335630bc-a558-9e31-5e2d-aee6237e83b0@omnilan.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 20.02.2019 um 17:51 schrieb Harry Schmalzbauer: > Hello, > … > gdb shows: > Core was generated by `/usr/sbin/auditdistd'. > Program terminated with signal 11, Segmentation fault. > Reading symbols from /lib/libutil.so.9...Reading symbols from > /usr/lib/debug//lib/libutil.so.9.debug...done. > done. > Loaded symbols for /lib/libutil.so.9 > Reading symbols from /libexec/ld-elf.so.1...Reading symbols from > /usr/lib/debug//libexec/ld-elf.so.1.debug...done. > done. > Loaded symbols for /libexec/ld-elf.so.1 > #0 memset (dest=0x80056f790, c=0, len=<value optimized out>) > at > /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:5624 > 5624 ((char *)dest)[i] = c; > (gdb) bt > #0 memset (dest=0x80056f790, c=0, len=<value optimized out>) > at > /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:5624 > #1 0x0000000800235b07 in map_object (fd=3, path=0x800246140 > "/lib/libcrypto.so.111", > sb=0x7fffffffd4a8) > at > /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/map_object.c:249 > #2 0x0000000800230806 in load_object (name=0x201dba > "libcrypto.so.111", fd_u=-1, > refobj=0x800248000, flags=<value optimized out>) > at > /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:2493 > #3 0x0000000800229972 in _rtld (sp=<value optimized out>, > exit_proc=0x7fffffffea30, > objp=0x7fffffffea38) > at > /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:2315 > #4 0x0000000800228019 in .rtld_start () > at > /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/amd64/rtld_start.S:39 > #5 0x0000000000000000 in ?? () > Current language: auto; currently minimal > > Any help highly appreciated. > > This is with a live CD (amd64), compiled with stable/12 from today (so > clang 7.01). > The bhyve guest has 2GB hardwired and ran stable/11 beforehand, which > compiled the live CD. > bhyve host is 11.2. But that shouldn't play a role, does it? I'm really interested what happens here. I built stable/11 in that bhyve guest and updated that guest to stable/11 from yesterday. To my surpise llvm 7.01 was also merged to stable/11. Thank you for that great supprt! No problems with any binary in the stable/11 bhyve guest. Then I built stable/12 in that re-built stable/11 guest. As result, again all binaries linked to /lib/libcrypto.so.111 crash (signal 11) with the stable/12 iso in the same bhyve guest. Here the example from ntpq: Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libedit.so.7...Reading symbols from /usr/lib/debug//lib/libedit.so.7.debug...done. done. Loaded symbols for /lib/libedit.so.7 Reading symbols from /lib/libm.so.5...Reading symbols from /usr/lib/debug//lib/libm.so.5.debug...done. done. Loaded symbols for /lib/libm.so.5 Reading symbols from /libexec/ld-elf.so.1...Reading symbols from /usr/lib/debug//libexec/ld-elf.so.1.debug...done. done. #0 memset (dest=0x8005ef790, c=0, len=<value optimized out>) at /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:5624 5624 ((char *)dest)[i] = c; (gdb) bt #0 memset (dest=0x8005ef790, c=0, len=<value optimized out>) at /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:5624 #1 0x000000080025db07 in map_object (fd=3, path=0x80026e1a0 "/lib/libcrypto.so.111", sb=0x7fffffffd4c8) at /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/map_object.c:249 #2 0x0000000800258806 in load_object (name=0x201b40 "libcrypto.so.111", fd_u=-1, refobj=0x800270000, flags=<value optimized out>) at /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:2493 #3 0x0000000800251972 in _rtld (sp=<value optimized out>, exit_proc=0x7fffffffea50, objp=0x7fffffffea58) at /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/rtld.c:2315 #4 0x0000000800250019 in .rtld_start () at /usr/local/share/deploy-tools/RELENG_12/src/libexec/rtld-elf/amd64/rtld_start.S:39 #5 0x0000000000000000 in ?? () So please correct me if I'm comletely wrong, but the problem here seems to be reproducably rtld-elf related. Unfortunately I don't know anything about object files and linkers and the related fundamental stuff. But maybe someone else has an idea what's going wrong here? Thanks, -Harry
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?596d1486-e2af-43f7-6f3f-65881e91819d>