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

NetBSD Home
NetBSD PR Database Search

(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.