Subject: pthreads issue, maybe?
To: None <port-sparc64@NetBSD.org>
From: segv <segv@netctl.net>
List: port-sparc64
Date: 07/22/2005 02:42:54
Greetings, I was browsing a webpage with Galeon, when it froze and began eating CPU time.
I ran ktruss on the process and got the following, where something related to setcontext
() was stuck in infinite loop:

[dhcli-192-168-0-5.netctl.net] ktruss -t A -i -p 13682
 13682 galeon   emul(netbsd)
 13682 galeon   setcontext(0xffffffffffff93b0)     JUSTRETURN
 13682 galeon   setcontext(0xffffffffffff93b0)     JUSTRETURN
 13682 galeon   setcontext(0xffffffffffff93b0)     JUSTRETURN
... and so on indefinitely


Attaching gdb to the process produced the following trace:

(gdb) bt
#0  0x00000000470101cc in poll () from /usr/lib/libpthread.so.0
#1  0x0000000040e2da04 in PR_Poll () from /usr/pkg/lib/firefox/libnspr4.so
#2  0x000000004a77885c in nsSocketTransportService::ServiceEventQ() ()
   from /usr/pkg/lib/firefox/components/libnecko.so
#3  0x00000000408a23ec in nsThread::Main(void*) ()
   from /usr/pkg/lib/firefox/libxpcom.so
#4  0x0000000040e2f21c in PR_Select () from /usr/pkg/lib/firefox/libnspr4.so
#5  0x0000000047012138 in pthread_create () from /usr/lib/libpthread.so.0
#6  0x000000004729e1e0 in _lwp_makecontext () from /usr/lib/libc.so.12

So I was wondering does this look like it could be an issue with pthreads implementation
on sparc64, or could it be a bug in the application? This is on NetBSD 3.0_BETA