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>