NetBSD Problem Report #56155
From www@netbsd.org Fri May 7 13:21:01 2021
Return-Path: <www@netbsd.org>
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 3F4FC1A9262
for <gnats-bugs@gnats.NetBSD.org>; Fri, 7 May 2021 13:21:01 +0000 (UTC)
Message-Id: <20210507132059.9E0991A9263@mollari.NetBSD.org>
Date: Fri, 7 May 2021 13:20:59 +0000 (UTC)
From: rokuyama.rk@gmail.com
Reply-To: rokuyama.rk@gmail.com
To: gnats-bugs@NetBSD.org
Subject: gdb is broken for threaded application on powerpc
X-Send-Pr-Version: www-1.0
>Number: 56155
>Category: toolchain
>Synopsis: gdb is broken for threaded application on powerpc
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri May 07 13:25:00 +0000 2021
>Originator: Rin Okuyama
>Release: 9.99.82
>Organization:
Department of Physics, Meiji University
>Environment:
NetBSD dht 9.99.82 NetBSD 9.99.82 (DHT) #205: Fri May 7 21:04:31 JST 2021 rin@latipes:/sys/arch/evbppc/compile/DHT evbppc
>Description:
usr.bin/gdb/t_regress:threads randomly fails on powerpc; It sometimes
passes, but mostly fails on all subarchs, i.e., oea, ibm4xx, and booke:
----
# cd /usr/tests/usr.bin/gdb && atf-run | atf-report
Tests root: /usr/tests/usr.bin/gdb
t_regress (1/1): 3 test cases
pie: [29.047345s] Passed.
threads: [ 460.0223181] sorry, pid 2008 was killed: orphaned traced process
[301.246749s] Failed: Test case timed out after 300 seconds
xml: [2.279580s] Passed.
[332.641263s]
Failed test cases:
t_regress:threads
Summary for 1 test programs:
2 passed test cases.
1 failed test cases.
0 expected failed test cases.
0 skipped test cases.
----
Manually running the testcase freezes gdb:
----
# gdb dig
GNU gdb (GDB) 11.0.50.20200914-git
...(snip)...
Reading symbols from dig...
Reading symbols from /usr/libdata/debug//usr/bin/dig.debug...
(gdb) run +time=1 +tries=1 @127.0.0.177
Starting program: /usr/bin/dig +time=1 +tries=1 @127.0.0.177
Program received signal SIGILL, Illegal instruction.
0xfd6aa660 in OPENSSL_altivec_probe () from /usr/lib/libcrypto.so.14
(gdb) c
Continuing.
Program received signal SIGILL, Illegal instruction.
0xfd6aa660 in OPENSSL_altivec_probe () from /usr/lib/libcrypto.so.14
(gdb) c
Continuing.
Program received signal SIGILL, Illegal instruction.
0xfd6aa6a4 in OPENSSL_madd300_probe () from /usr/lib/libcrypto.so.14
(gdb) c
Continuing.
Program received signal SIGILL, Illegal instruction.
0xfd6aa6a4 in OPENSSL_madd300_probe () from /usr/lib/libcrypto.so.14
(gdb) c
Continuing.
[New LWP 1522 of process 1982]
[New LWP 2136 of process 1982]
[New LWP 1685 of process 1982]
(freeze forever here)
----
Backtrace by another instance of gdb reads:
----
# gdb -p 2132
GNU gdb (GDB) 11.0.50.20200914-git
...(snip)...
Reading symbols from /usr/bin/gdb...
Reading symbols from /usr/libdata/debug//usr/bin/gdb.debug...
[New LWP 2132 of process 2132]
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/libexpat.so.2...
Reading symbols from /usr/libdata/debug//usr/lib/libexpat.so.2.3.debug...
Reading symbols from /usr/lib/liblzma.so.2...
Reading symbols from /usr/libdata/debug//usr/lib/liblzma.so.2.0.debug...
Reading symbols from /usr/lib/libz.so.1...
Reading symbols from /usr/libdata/debug//usr/lib/libz.so.1.0.debug...
Reading symbols from /usr/lib/libcurses.so.9...
Reading symbols from /usr/libdata/debug//usr/lib/libcurses.so.9.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.24.debug...
Reading symbols from /usr/lib/libpthread.so.1...
Reading symbols from /usr/libdata/debug//usr/lib/libpthread.so.1.4.debug...
Reading symbols from /usr/lib/libstdc++.so.9...
Reading symbols from /usr/libdata/debug//usr/lib/libstdc++.so.9.0.debug...
Reading symbols from /usr/lib/libm.so.0...
Reading symbols from /usr/libdata/debug//usr/lib/libm.so.0.12.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.218.debug...
Reading symbols from /usr/libexec/ld.elf_so...
Reading symbols from /usr/libdata/debug//usr/libexec/ld.elf_so.debug...
--Type <RET> for more, q to quit, c to continue without paging--
[Switching to LWP 935 of process 2132]
0xfd875ea4 in ___lwp_park60 () from /usr/lib/libc.so.12
(gdb) bt
#0 0xfd875ea4 in ___lwp_park60 () from /usr/lib/libc.so.12
#1 0xfdcdb71c in pthread_cond_timedwait (cond=0xfd75802c, mutex=0xfd758044,
abstime=abstime@entry=0x0) at /usr/src/lib/libpthread/pthread_cond.c:167
#2 0xfdcdb9e4 in pthread_cond_wait (cond=<optimized out>,
mutex=<optimized out>) at /usr/src/lib/libpthread/pthread_cond.c:221
#3 0xfdb3e040 in __gthread_cond_wait (__mutex=<optimized out>,
__cond=__cond@entry=0xfdcc7cfc)
at /build/dest/evbppc-powerpc/usr/include/g++/bits/gthr-posix.h:868
#4 std::condition_variable::wait (this=this@entry=0xfd75802c, __lock=...)
at /usr/src/external/gpl3/gcc/dist/libstdc++-v3/src/c++11/condition_variable.cc:53
#5 0x01d90f48 in gdb::thread_pool::thread_function (this=0xfd758000)
at /usr/src/external/gpl3/gdb/lib/libgdbsupport/../../dist/gdbsupport/thread-pool.cc:162
#6 0xfdb3be8c in std::execute_native_thread_routine (__p=0xfddc8d80)
at /usr/src/external/gpl3/gcc/dist/libstdc++-v3/src/c++11/thread.cc:80
#7 0xfdcddb08 in pthread__create_tramp (cookie=0xfd590000)
at /usr/src/lib/libpthread/pthread.c:561
#8 0xfd85d300 in __mknod50 () from /usr/lib/libc.so.12
Backtrace stopped: frame did not save the PC
(gdb)
----
Note that I've never observed similar problems for gdb.old.
>How-To-Repeat:
Run tests/usr.bin/gdb/t_regress:threads on powerpc.
>Fix:
N/A
(Contact us)
$NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.