Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 May 2003 14:12:34 -0500
From:      Dan Nelson <dnelson@allantgroup.com>
To:        Julian Elischer <julian@elischer.org>
Cc:        Daniel Eischen <eischen@pcnet1.pcnet.com>
Subject:   Re: libkse and SMP (was Re: USB bulk read & pthreads)
Message-ID:  <20030522191234.GA13498@dan.emsphone.com>
In-Reply-To: <Pine.BSF.4.21.0305221104250.82473-100000@InterJet.elischer.org>
References:  <20030522174334.GC1694@dan.emsphone.com> <Pine.BSF.4.21.0305221104250.82473-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (May 22), Julian Elischer said:
> what's 'pike'?
> 
> I assume it's one of /usr/ports/lang/pike72 or /usr/ports/lang/pike74?
> if so what do I need to do to du0plicate the hang.. you said it is 
> predictable..

Yep, that's it.  After a couple more test lockups, it looks like simply
running the threads configure test is enough to trigger the problem. 
The pike74 port hasn't been updated to the new bsd.gnome.mk style, so
it doesn't build.  The quickest way to reproduce the hang is: fetch
ftp://pike.ida.liu.se/pub/pike/latest-stable/Pike-v7.4.20.tar.gz,
extract it, run sed -i.bak -e 's/-pthread/-lkse/' src/configure, then
run make.

It consistently dies for me at "checking posix threads".  I even get a
panic now:

checking if this version of FreeBSD may have working threads... yes
checking for pthread-config... no
checking -lkse... yes
checking Initial stack limit... Bus error (core dumped)
1048576
checking for pthread_init... no
checking for pthread_mutexattr_init... yes
checking for pthread_kill... yes
checking posix threads... panic: mtx_lock() of spin mutex └┬<▀é└B @ ../../../vm/vm_map.c:2142
cpuid = 1; lapic.id = 00000000
Stack backtrace:
panic(c03e5cf4,c082e000,c03f59e2,85e,d1d21000) at panic+0x11b
_mtx_lock_flags(c21a42c0,0,c03f59e2,85e,db9e8b9c) at _mtx_lock_flags+0x84
vm_map_delete(c0831000,d1d1d000,d1d21000,dfe1dda0,c3ed5e40) at vm_map_delete+0x19b
vm_map_remove(c0831000,d1d1d000,d1d21000,121,c3ed5d10) at vm_map_remove+0x55
cpu_thread_clean(c3ed5d10,6ab,c3ed5d10,c3ed5e40,db9e8c3c) at cpu_thread_clean+0x66
thread_free(c3ed5d10,0,c03e7262,365,c492e000) at thread_free+0x14
thread_reap(c3e45780,ffffffff,0,28c,0) at thread_reap+0x124
wait1(c3821be0,db9e8d10,0,db9e8d40,c039b603) at wait1+0x7d6
wait4(c3821be0,db9e8d10,c03fb8ec,3fb,4) at wait4+0x20
syscall(c038002f,2f,2f,1,80ff100) at syscall+0x3a3
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (7), eip = 0x807c1eb, esp = 0xbfbff01c, ebp = 0xbfbff038 ---
boot() called on cpu#1

Manually running the "checking posix threads" conftest by itself works
fine, though...

-- 
	Dan Nelson
	dnelson@allantgroup.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030522191234.GA13498>