NetBSD Problem Report #56296
From martin@duskware.de Sat Jul 3 15:41:02 2021
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id 9B6501A923B
for <gnats-bugs@gnats.NetBSD.org>; Sat, 3 Jul 2021 15:41:02 +0000 (UTC)
From: martin@NetBSD.org
Reply-To: martin@NetBSD.org
To: gnats-bugs@NetBSD.org
Subject: gdb spins in lib/libc/tls/t_tls_dlopen
X-Send-Pr-Version: 3.95
>Number: 56296
>Category: port-arm
>Synopsis: gdb spins in lib/libc/tls/t_tls_dlopen
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: port-arm-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jul 03 15:45:00 +0000 2021
>Last-Modified: Thu Oct 15 10:25:01 +0000 2026
>Originator: Martin Husemann
>Release: NetBSD 9.99.86
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD unpluged.duskware.de 9.99.86 NetBSD 9.99.86 (UNPLUGED) #387: Sat Jul 3 10:36:35 CEST 2021 martin@seven-days-to-the-wolves.aprisoft.de:/work/src/sys/arch/evbarm/compile/UNPLUGED evbarm
Architecture: earmv5
Machine: evbarm
>Description:
During a ful ATF test run, this machine stops at:
lib/libc/tls/t_tls_dlopen (361/890): 1 test cases
t_tls_dlopen:
Examining closer, the test crashes and ATF tries to get a backtrace, but
gdb spins and blocks atf. Killing gdb makes atf continue.
>How-To-Repeat:
cd /usr/tests/lib/libc/tls/ && atf-run t_tls_dlopen
>Fix:
n/a
>Audit-Trail:
From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: port-arm/56296: gdb spins forever
Date: Fri, 5 Nov 2021 19:40:01 +0100
This is still reproducable on evbarmv5.
Martin
From: Rin Okuyama <rokuyama.rk@gmail.com>
To: "gnats-bugs@NetBSD.org" <gnats-bugs@netbsd.org>, netbsd-bugs@netbsd.org
Cc:
Subject: Re: port-arm/56296 (gdb spins in lib/libc/tls/t_tls_dlopen)
Date: Tue, 15 Aug 2023 13:03:23 +0900
For earmv5-el, in addition to lib/libc/tls/t_tls_dlopen,
all tests in libexec/ld_elf.so/t_tls_extern crashes in
a similar manner. GDB also spins forever.
port-arm/56839 is irrelevant here; its workaround
https://gist.github.com/rokuyama/3d791f2ceb2757dc389a95910162c9cb
does not help.
Strangely enough, these failures are not observed for
earmv5-eb, even if running on *the same machine* (note
that MARVELL_NAS-based machines support both endians).
I will examine further...
Thanks,
rin
From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: port-arm/56296: gdb spins forever
Date: Wed, 14 Oct 2026 20:53:34 +0200
The same symptom started showing up in ATF runs of evbearmv7hf-el
on aarch64 machines (for different test cases).
Martin
From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: port-arm/56296: gdb spins forever
Date: Thu, 15 Oct 2026 12:24:30 +0200
The failure on aarch64 running 32bit userland seems to be not quite
reproducable. Last run observed this:
posix_spawn_kill_spawner: [0.036558s] Passed.
posix_spawn_setpgid: [0.031224s] Skipped: kernel panic (pg_jobc going negative)
posix_spawn_signalignored: [0.037008s] Passed.
posix_spawn_signalmasked:
and output stopped, top shows:
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
13770 root 30 0 103M 55M CPU/2 36:18 99.02% 99.02% gdb
1312 root 83 0 14M 6744K wait/1 0:11 0.00% 0.00% atf-run
Attaching the 32bit gdb gives:
Attaching to process 13770
Reading symbols from /usr/bin/gdb...
Reading symbols from /usr/libdata/debug/usr/bin/gdb.debug...
[New LWP 3226 of process 13770]
[New LWP 1664 of process 13770]
[New LWP 3922 of process 13770]
[New LWP 13770 of process 13770]
Reading symbols from /usr/lib/libexpat.so.2...
Reading symbols from /usr/libdata/debug/usr/lib/libexpat.so.2.7.debug...
Reading symbols from /usr/lib/liblzma.so.2...
Reading symbols from /usr/libdata/debug/usr/lib/liblzma.so.2.1.debug...
Reading symbols from /usr/lib/libz.so.1...
Reading symbols from /usr/libdata/debug/usr/lib/libz.so.1.1.debug...
Reading symbols from /usr/lib/libcurses.so.9...
Reading symbols from /usr/libdata/debug/usr/lib/libcurses.so.9.2.debug...
Reading symbols from /usr/lib/libterminfo.so.2...
Reading symbols from /usr/libdata/debug/usr/lib/libterminfo.so.2.0.debug...
Reading symbols from /usr/lib/libintl.so.1...
Reading symbols from /usr/libdata/debug/usr/lib/libintl.so.1.1.debug...
Reading symbols from /usr/lib/libkvm.so.6...
Reading symbols from /usr/libdata/debug/usr/lib/libkvm.so.6.0.debug...
Reading symbols from /usr/lib/libutil.so.7...
Reading symbols from /usr/libdata/debug/usr/lib/libutil.so.7.25.debug...
Reading symbols from /usr/lib/libpthread.so.1...
Reading symbols from /usr/libdata/debug/usr/lib/libpthread.so.1.7.debug...
Reading symbols from /usr/lib/libstdc++.so.9...
Reading symbols from /usr/libdata/debug/usr/lib/libstdc++.so.9.2.debug...
Reading symbols from /usr/lib/libm.so.0...
Reading symbols from /usr/libdata/debug/usr/lib/libm.so.0.14.debug...
Reading symbols from /usr/lib/libgcc_s.so.1...
Reading symbols from /usr/libdata/debug/usr/lib/libgcc_s.so.1.0.debug...
Reading symbols from /usr/lib/libc.so.12...
Reading symbols from /usr/libdata/debug/usr/lib/libc.so.12.224.debug...
Reading symbols from /usr/libexec/ld.elf_so...
Reading symbols from /usr/libdata/debug/usr/libexec/ld.elf_so.debug...
0xf8659b44 in ___lwp_park60 () from /usr/lib/libc.so.12
(gdb) info reg
r0 0x0 0
r1 0x1 1
r2 0x0 0
r3 0x0 0
r4 0x0 0
r5 0x0 0
r6 0x0 0
r7 0xf848c0b4 4165517492
r8 0xf848c09c 4165517468
r9 0xf83b7814 4164646932
r10 0xf848c0a4 4165517476
r11 0xf6fdff30 4143841072
r12 0xf8964430 4170597424
sp 0xf61fff20 0xf61fff20
lr 0xf895c6e0 -124401952
pc 0xf8659b44 0xf8659b44 <___lwp_park60+4>
cpsr 0x60090010 1611202576
(gdb) info thread
Id Target Id Frame
* 1 LWP 3318 of process 13770 "gdb worker" 0xf8659b44 in ___lwp_park60 () from /usr/lib/libc.so.12
2 LWP 3226 of process 13770 "gdb worker" 0xf8659b44 in ___lwp_park60 () from /usr/lib/libc.so.12
3 LWP 1664 of process 13770 "gdb worker" 0xf8659b44 in ___lwp_park60 () from /usr/lib/libc.so.12
4 LWP 3922 of process 13770 "gdb worker" 0xf8659b44 in ___lwp_park60 () from /usr/lib/libc.so.12
5 LWP 13770 of process 13770 "" frame_id::operator== ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:804
(gdb) thread 5
[Switching to thread 5 (LWP 13770 of process 13770)]
#0 frame_id::operator== () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:804
warning: 804 /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c: No such file or directory
(gdb) bt
#0 frame_id::operator== () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:804
#1 0x00667e8c in frame_find_by_id () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:925
#2 0x00469578 in value::fetch_lazy_register () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/value.c:4022
#3 0x0046a06c in value::fetch_lazy () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/value.c:4137
#4 0x0046a958 in value::optimized_out () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/value.c:1353
#5 0x0066a93c in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1390
#6 0x007c052c in arm_prologue_prev_register ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2459
#7 0x00669d8c in frame_unwind_register_value () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#8 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#9 0x0066b378 in get_frame_register_unsigned () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#10 0x007c0518 in arm_prologue_prev_register ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2458
#11 0x00669d8c in frame_unwind_register_value () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#12 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#13 0x0066b378 in get_frame_register_unsigned () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#14 0x007c0518 in arm_prologue_prev_register ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2458
#15 0x00669d8c in frame_unwind_register_value () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#16 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#17 0x0066b378 in get_frame_register_unsigned () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#18 0x007c0518 in arm_prologue_prev_register ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2458
#19 0x00669d8c in frame_unwind_register_value () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#20 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#21 0x0066b378 in get_frame_register_unsigned () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#22 0x007c0518 in arm_prologue_prev_register ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2458
#23 0x00669d8c in frame_unwind_register_value () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#24 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#25 0x0066b378 in get_frame_register_unsigned () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#26 0x007c0518 in arm_prologue_prev_register ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2458
#27 0x00669d8c in frame_unwind_register_value () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#28 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#29 0x0066b378 in get_frame_register_unsigned () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#30 0x007c0518 in arm_prologue_prev_register ()
..
..
#4391 0x00669d8c in frame_unwind_register_value ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1263
#4392 0x0066a930 in frame_unwind_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1386
#4393 0x0066b378 in get_frame_register_unsigned ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:1411
#4394 0x007b0388 in arm_frame_is_thumb () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:641
#4395 0x007c00f4 in arm_scan_prologue () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2228
#4396 0x007c0290 in arm_make_prologue_cache () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2319
#4397 0x007c0610 in arm_prologue_this_id () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/arm-tdep.c:2381
#4398 0x00668ac0 in compute_frame_id () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:608
#4399 0x0066bb08 in get_prev_frame_maybe_check_cycle ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:2215
#4400 0x0066dc70 in get_prev_frame_always_1 () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:2476
#4401 0x0066e2a8 in get_prev_frame_always () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:2492
#4402 0x00667724 in get_prev_frame () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/frame.c:2755
#4403 0x00529734 in backtrace_command_1 () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/stack.c:2054
#4404 backtrace_command () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/stack.c:2169
#4405 0x006cd488 in cmd_func () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/cli/cli-decode.c:2827
#4406 0x004bc058 in execute_command () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/top.c:565
#4407 0x0056fe0c in catch_command_errors () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/main.c:511
#4408 0x0056ff8c in execute_cmdargs () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/main.c:610
#4409 0x00572254 in captured_main_1 () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/main.c:1326
#4410 0x00572eac in captured_main () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/main.c:1349
#4411 gdb_main () at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/main.c:1378
#4412 0x009d89c0 in main () at /work/src/external/gpl3/gdb/bin/gdb/../../dist/gdb/gdb.c:38
Martin
(Contact us)
$NetBSD: query-full-pr,v 1.51 2026/08/10 02:28:17 riastradh Exp $
$NetBSD: gnats_config.sh,v 1.10 2026/05/13 22:00:09 riastradh Exp $
Copyright © 1994-2026
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.