glibc 2.28-0ubuntu1 ADT test failure with linux 4.19.0-5.6

Bug #1805154 reported by Seth Forshee on 2018-11-26
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linux
Confirmed
Medium
Fedora
Invalid
Medium
glibc (Ubuntu)
Undecided
Unassigned
linux (Ubuntu)
Undecided
Seth Forshee

Under 4.19.2-300 kernel, i686 glibc tests failed with:

FAIL: debug/tst-backtrace5
FAIL: debug/tst-backtrace6
FAIL: nptl/tst-cancel24
FAIL: nptl/tst-cancel24-static
FAIL: nptl/tst-cancelx16
FAIL: nptl/tst-cancelx18
FAIL: nptl/tst-cancelx20
FAIL: nptl/tst-cancelx21
FAIL: nptl/tst-cancelx4
FAIL: nptl/tst-cancelx5
FAIL: nptl/tst-cleanupx4
FAIL: nptl/tst-oncex3
FAIL: nptl/tst-oncex4

[hjl@gnu-skx-1 build-i686-linux]$ debug/tst-backtrace5 --direct
Obtained backtrace with 3 functions
Failure on line 53
[hjl@gnu-skx-1 build-i686-linux]$

Under 4.18.18-300 kernel, I got

Obtained backtrace with 7 functions
Function 0: debug/tst-backtrace5(handle_signal+0x1b) [0x804a42b]
Function 1: linux-gate.so.1(__kernel_sigreturn+0) [0xf7f7b0b0]
Function 2: linux-gate.so.1(__kernel_vsyscall+0x9) [0xf7f7b099]
Function 3: /export/build/gnu/tools-build/glibc-32bit/build-i686-linux/libc.so.6(__read+0x2d) [0xf7e99c8d]
Function 4: debug/tst-backtrace5(fn+0x105) [0x804a745]
Function 5: debug/tst-backtrace5(fn+0xd4) [0x804a714]
Function 6: debug/tst-backtrace5(fn+0xd4) [0x804a714]

Created attachment 279555
A testcase

commit 379d98ddf41344273d9718556f761420f4dc80b3
Author: Alistair Strachan <email address hidden>
Date: Fri Aug 3 10:39:31 2018 -0700

    x86: vdso: Use $LD instead of $CC to link

    The vdso{32,64}.so can fail to link with CC=clang when clang tries to find
    a suitable GCC toolchain to link these libraries with.

    /usr/bin/ld: arch/x86/entry/vdso/vclock_gettime.o:
      access beyond end of merged section (782)

breaks i386 vDSO with incorrect unwind info. The testcase here should
report:

[hjl@gnu-hsw-1 tmp]$ gcc -g -O2 -funwind-tables -m32 foo.c
[hjl@gnu-hsw-1 tmp]$ ./a.out
Obtained backtrace with 7 functions
Function 0: ./a.out() [0x8049272]
Function 1: linux-gate.so.1(__kernel_sigreturn+0) [0xf7f990b0]
Function 2: linux-gate.so.1(__kernel_vsyscall+0x9) [0xf7f99099]
Function 3: /lib/libc.so.6(__read+0x2b) [0xf7ea72ab]
Function 4: ./a.out() [0x80493a9]
Function 5: ./a.out() [0x80493f3]
Function 6: ./a.out() [0x80493f3]
[hjl@gnu-hsw-1 tmp]$

But kernel 4.19 got

[hjl@gnu-cfl-1 tmp]$ ./a.out
Obtained backtrace with 4 functions
Failure on line 67
[hjl@gnu-cfl-1 tmp]$

Revert the commit fixes i386 vDSO.

This is caused by

commit 379d98ddf41344273d9718556f761420f4dc80b3
Author: Alistair Strachan <email address hidden>
Date: Fri Aug 3 10:39:31 2018 -0700

    x86: vdso: Use $LD instead of $CC to link

    The vdso{32,64}.so can fail to link with CC=clang when clang tries to find
    a suitable GCC toolchain to link these libraries with.

    /usr/bin/ld: arch/x86/entry/vdso/vclock_gettime.o:
      access beyond end of merged section (782)

Seth Forshee (sforshee) wrote :

Looks to be a regression in the vdso caused by 379d98ddf41344273d9718556f761420f4dc80b3 "x86: vdso: Use $LD instead of $CC to link" in Linux 4.19.

tags: added: kernel-adt-failure
Changed in glibc (Ubuntu):
status: New → Invalid
Changed in linux (Ubuntu):
status: New → Confirmed
Seth Forshee (sforshee) wrote :

Applied a revert of 379d98ddf41344273d9718556f761420f4dc80b3 to fix this until a fix is available upstream.

Changed in linux (Ubuntu):
assignee: nobody → Seth Forshee (sforshee)
status: Confirmed → Fix Committed
Changed in linux:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in fedora:
importance: Unknown → Medium
status: Unknown → Confirmed

The GNU_EH_FRAME segment is actually empty in our builds. This breaks unwinding across signal handlers on i386 because the libgcc unwinder does not recognize i386 __kernel_sigreturn as a signal handler frame anymore.

*** This bug has been marked as a duplicate of bug 1659295 ***

Changed in fedora:
status: Confirmed → Invalid
Launchpad Janitor (janitor) wrote :
Download full text (14.1 KiB)

This bug was fixed in the package linux - 4.19.0-12.13

---------------
linux (4.19.0-12.13) disco; urgency=medium

  * linux: 4.19.0-12.13 -proposed tracker (LP: #1813664)

  * kernel oops in bcache module (LP: #1793901)
    - SAUCE: bcache: never writeback a discard operation

  * Disco update: 4.19.18 upstream stable release (LP: #1813611)
    - ipv6: Consider sk_bound_dev_if when binding a socket to a v4 mapped address
    - mlxsw: spectrum: Disable lag port TX before removing it
    - mlxsw: spectrum_switchdev: Set PVID correctly during VLAN deletion
    - net: dsa: mv88x6xxx: mv88e6390 errata
    - net, skbuff: do not prefer skb allocation fails early
    - qmi_wwan: add MTU default to qmap network interface
    - ipv6: Take rcu_read_lock in __inet6_bind for mapped addresses
    - net: clear skb->tstamp in bridge forwarding path
    - netfilter: ipset: Allow matching on destination MAC address for mac and
      ipmac sets
    - gpio: pl061: Move irq_chip definition inside struct pl061
    - drm/amd/display: Guard against null stream_state in set_crc_source
    - drm/amdkfd: fix interrupt spin lock
    - ixgbe: allow IPsec Tx offload in VEPA mode
    - platform/x86: asus-wmi: Tell the EC the OS will handle the display off
      hotkey
    - e1000e: allow non-monotonic SYSTIM readings
    - usb: typec: tcpm: Do not disconnect link for self powered devices
    - selftests/bpf: enable (uncomment) all tests in test_libbpf.sh
    - of: overlay: add missing of_node_put() after add new node to changeset
    - writeback: don't decrement wb->refcnt if !wb->bdi
    - serial: set suppress_bind_attrs flag only if builtin
    - bpf: Allow narrow loads with offset > 0
    - ALSA: oxfw: add support for APOGEE duet FireWire
    - x86/mce: Fix -Wmissing-prototypes warnings
    - MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur
    - crypto: ecc - regularize scalar for scalar multiplication
    - arm64: perf: set suppress_bind_attrs flag to true
    - drm/atomic-helper: Complete fake_commit->flip_done potentially earlier
    - clk: meson: meson8b: fix incorrect divider mapping in cpu_scale_table
    - samples: bpf: fix: error handling regarding kprobe_events
    - usb: gadget: udc: renesas_usb3: add a safety connection way for
      forced_b_device
    - fpga: altera-cvp: fix probing for multiple FPGAs on the bus
    - selinux: always allow mounting submounts
    - ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined
    - scsi: qedi: Check for session online before getting iSCSI TLV data.
    - drm/amdgpu: Reorder uvd ring init before uvd resume
    - rxe: IB_WR_REG_MR does not capture MR's iova field
    - efi/libstub: Disable some warnings for x86{,_64}
    - jffs2: Fix use of uninitialized delayed_work, lockdep breakage
    - clk: imx: make mux parent strings const
    - pstore/ram: Do not treat empty buffers as valid
    - media: uvcvideo: Refactor teardown of uvc on USB disconnect
    - powerpc/xmon: Fix invocation inside lock region
    - powerpc/pseries/cpuidle: Fix preempt warning
    - media: firewire: Fix app_info parameter type in avc_ca{,_app}_info
    - ASoC: use dma_ops of parent device for acp_audio_dma
    - media: ve...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.