SIGILL @ pthread_create() after execv

Julian Elischer julian at
Sun Sep 12 10:40:18 PDT 2004

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/
> (gdb) where
> #0  0x28274d3f in pthread_testcancel () from /usr/lib/
> #1  0x2826126d in pthread_create () from /usr/lib/
> #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

More information about the freebsd-threads mailing list