Subject: gkrellm plugin causes pthread assertion to fail
To: None <current-users@netbsd.org>
From: Joel Wilsson <joelw@unix.se>
List: current-users
Date: 02/09/2003 19:31:54
Hi,

When I click "enable" for the gkx86info plugin in gkrellm, I get
this message:
assertion "next != 0" failed: file  
"/home/joelw/src/lib/libpthread/pthread_run.c",
   line 118, function "pthread__next"
Which of course hangs the process, since it doesn't have any
thread to run. Seems to happen every time. I'm doing a build.sh
distribution in the background, and this is a uni-processor Athlon
system. I'm using X11 forwarding to run gkrellm, but I doubt that
makes any difference in this case. This is what ps -s gives me:
  UID   PID  PPID CPU LID NLWP PRI NI  VSZ  RSS WCHAN STAT TT     TIME  
COMMAND
1001 17425     1  36   1    1  64  0 2508 5152 -     R    p0- 2:58.41  
gkrellm
1001 21852 21850   8   1    1  18  0  160 1468 pause S    p0  0:00.01  
-zsh
1001 21885 21852  36   1    1  64  0 2592 5240 -     R    p0  0:06.12  
gkrellm
1001  8072     1  36   1    1  64  0 2492 5068 -     R    p1- 9:25.62  
gkrellm
1001 22841 22840   2   1    1  18  0  144 1452 pause S    p1  0:00.01  
-zsh
1001 22851 22841   2   1    1  30  0   76  540 -     R    p1  0:00.00  
ps -s
1001  9932  9931   0   1    1  18  0  228 1704 pause S    p2  0:00.74  
/usr/pkg/bin/zsh
1001 15790 15830  31   1    1  10  0  140  656 wait  S    p2  0:00.00  
/bin/sh -ec targ=dependall;dir=usr.bin;\t\t case "$dir" in  
/*)\t\t\t\t\t\t echo "$targ ===> $dir";\t\t\t\t cd "$dir";\t\t\t\t\t\t  
/home/joelw
1001 15791 15790  32   1    1  10  0 2076 2660 wait  S    p2  0:00.20  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
_THISDIR_ usr.bin/
1001 15821 28511  30   1    1  10  0  136  620 wait  S    p2  0:00.00  
/bin/sh -ec (cd /home/joelw/src &&  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
do-build)
1001 15822 15821  30   1    1  10  0  512 1036 wait  S    p2  0:00.03  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
do-build
1001 15829 15822  30   1    1  10  0  136  620 wait  S    p2  0:00.00  
/bin/sh -ec (cd /home/joelw/src &&  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
dependall BUILD_tools=no BUILD_lib
1001 15830 15829  31   1    1  10  0  436 1024 wait  S    p2  0:00.03  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
dependall BUILD_tools no
1001 22569 15791  32   1    1  10  0  140  656 wait  S    p2  0:00.00  
/bin/sh -ec targ=dependall;dir=tn3270;\t\t case "$dir" in  
/*)\t\t\t\t\t\t echo "$targ ===> $dir";\t\t\t\t cd "$dir";\t\t\t\t\t\t  
/home/joelw/
1001 22570 22569  32   1    1  10  0  312  892 wait  S    p2  0:00.01  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
_THISDIR_ usr.bin/tn3270/
1001 22571 22570  32   1    1  10  0  140  656 wait  S    p2  0:00.01  
/bin/sh -ec targ=dependall;dir=tn3270;\t\t case "$dir" in  
/*)\t\t\t\t\t\t echo "$targ ===> $dir";\t\t\t\t cd "$dir";\t\t\t\t\t\t  
/home/joelw/
1001 22572 22571  32   1    1  10  0  536 1072 wait  S    p2  0:00.03  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
_THISDIR_ usr.bin/tn3270/tn3270/
1001 22723 22572  32   1    1  10  0  136  652 wait  S    p2  0:00.00  
/bin/sh -ec cd /home/joelw/src/usr.bin/tn3270/tn3270;  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
realall
1001 22724 22723  36   1    1  10  0  996 1516 wait  S    p2  0:00.06  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
realall
1001 22848 22724  36   1    1  10  0  132  596 wait  S    p2  0:00.08  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/i386-- 
netbsdelf-gcc -O2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpoi
1001 22850 22848  36   1    1  64  0 2924 3448 -     R    p2  0:00.15  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/lib/gcc- 
lib/i386--netbsdelf/2.95.3/cc1 /var/tmp/ccKQzDmp.i -quiet -dumpbase term
1001 27495  9932  26   1    1  10  0  224  780 wait  S    p2  0:00.01  
sh ./build.sh -D ../nbtmp/distribution -O ../nbtmp/bsdobj -U  
distribution
1001 28495 27495  26   1    1  10  0  512 1044 wait  S    p2  0:00.03  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
distribution
1001 28510 28495  26   1    1  10  0  136  620 wait  S    p2  0:00.00  
/bin/sh -ec (cd /home/joelw/src &&  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
NOPOSTINSTALL=1 build)
1001 28511 28510  30   1    1  10  0  448 1036 wait  S    p2  0:00.03  
/home/joelw/src/../nbtmp/bsdobj/tools/tools.NetBSD-1.6N-i386/bin/nbmake  
NOPOSTINSTALL 1

The gkrellm window flashes a bit as if it's trying to add an item
for gkx86info before it hangs. It stays there even after I kill the
ssh session (that's why there are 3 instances of gkrellm above).

Should I post a PR? I don't recall seeing anything about this on
source-changes, and it's a very recent -current (updated yesterday).
src/lib/libpthread/pthread_run.c:
      $NetBSD: pthread_run.c,v 1.5 2003/01/31 04:58:57 nathanw Exp $

Could it have something to do with the fact that almost all
installed software was built before native pthreads?

//joelw