Re: Solaris - procfs: couldn't find pid 32748 (kernel thread 21) in procinfo list

Petr Sumbera
2020-06-01T12:49:18Z

Hi Rainer,

please see my other mail. But it seems to me that handling LWP exit
might be broken on Solaris. Though I think I'm really lost and don't
know how to continue now.

Thanks!

Petr

On 28.05.2020 18:01, Rainer Orth wrote:
> Hi Petr,
>
>> I'm running into the issue below. Any suggestion how to this?
>>
>> # DISPLAY=:1 gdb /opt/firefox/bin/firefox
>> GNU gdb (GDB) 9.2
>> Copyright (C) 2020 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> Type "show copying" and "show warranty" for details.
>> This GDB was configured as "sparc-sun-solaris2.11".
>> Type "show configuration" for configuration details.
>> For bug reporting instructions, please see:
>> <http://www.gnu.org/software/gdb/bugs/>.
>> Find the GDB manual and other documentation resources online at:
>> <http://www.gnu.org/software/gdb/documentation/>.
>>
>> For help, type "help".
>> Type "apropos word" to search for commands related to "word"...
>> Reading symbols from /opt/firefox/bin/firefox...
>> (gdb) run -P
>> Starting program: /opt/firefox/bin/firefox -P
>> [Thread debugging using libthread_db enabled]
>> [New Thread 1 (LWP 1)]
>> [New LWP 2 ]
> [...]
>> [New LWP 26 ]
>> [LWP 20 exited]
>> [New LWP 20 ]
>> [LWP 21 exited]
>> [New LWP 21 ]
>> procfs: couldn't find pid 32748 (kernel thread 21) in procinfo list.
>> procfs: couldn't find pid 32748 (kernel thread 21) in procinfo list.
>> (gdb)
>>
>> ---
>>
>> Is this Solaris GDB issue? Any suggestion where to look in GDB code?
>
> I'm seeing this relatively often when running the gdb testsuite (which
> makes it unsuitable to run make check on the Solaris gdb buildbots).
>
> I haven't yet gotten around to investigate closely, but the first places
> to check are procfs.c (the process layer, via /proc) and sol-thread.c
> (the thread layer, via libc_db).
>
> There's lots of old cruft in there from pre-Solaris 9 times with its NxM
> thread model, which both breaks a considerable number of test cases and
> makes the code harder to follow due to the added complexity/generality
> we don't need any longer.
>
> Rainer
>