From owner-freebsd-threads@FreeBSD.ORG Sun Sep 12 17:40:17 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E80BA16A4CF for ; Sun, 12 Sep 2004 17:40:17 +0000 (GMT) Received: from pimout2-ext.prodigy.net (pimout2-ext.prodigy.net [207.115.63.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 78F5E43D48 for ; Sun, 12 Sep 2004 17:40:17 +0000 (GMT) (envelope-from julian@elischer.org) Received: from elischer.org (adsl-216-100-132-188.dsl.snfc21.pacbell.net [216.100.132.188])i8CHeFvd196266; Sun, 12 Sep 2004 13:40:16 -0400 Message-ID: <414489FF.3090705@elischer.org> Date: Sun, 12 Sep 2004 10:40:15 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4b) Gecko/20030524 X-Accept-Language: en, hu MIME-Version: 1.0 To: Joost Bekkers References: <20040912141838.GA89862@bps.jodocus.org> In-Reply-To: <20040912141838.GA89862@bps.jodocus.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-threads@freebsd.org Subject: Re: SIGILL @ pthread_create() after execv X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Sep 2004 17:40:18 -0000 Joost Bekkers wrote: > Hello > > After upgrading to 5.3-BETA3 (from 5.2.1-p9) one of my programs started to crash with > Illigal Instruction (SIGILL) after it restarted itself with a execv > > gdb is telling me: > > Program terminated with signal 4, Illegal instruction. > #0 0x28274d3f in pthread_testcancel () from /usr/lib/libpthread.so.1 > (gdb) where > #0 0x28274d3f in pthread_testcancel () from /usr/lib/libpthread.so.1 > #1 0x2826126d in pthread_create () from /usr/lib/libpthread.so.1 > #2 0x08151364 in rdns_cache_init () at rdns_cache.c:317 > #3 0x081513d6 in gethostname_cached (addr=0x9cb757e "?d?", len=4, ttl_refresh=0) at rdns_cache.c:336 > #4 0x0811b17a in dns_gethostname (desc=0x9cb756c) at fd_network.c:130 > #5 0x080cb25e in fread_char (ch=0x9cb8418, fp=0x8244180) at save.c:1215 > #6 0x080ca539 in load_char_obj (d=0x9cb756c, name=0xbfbfd960 "Jodocus") at save.c:930 > #7 0x0811afa9 in copyover_recover_players () at fd_copyover.c:337 > #8 0x0807a1d7 in main (argc=5, argv=0xbfbfec70) at comm.c:256 > > I'm at a loss on how to get to the bottom of this problem. I suspect we've screwed execve for threaded progrms :-) Guys I probably have to free the 'upcall' structure or the first ptrhead call after execvs will find th e old one and try upcall to the wrong place.. I'll look at this tonight I hope.. thanks for the report.. > > Can anybody shed some light on this? > > thanks >