Date: Fri, 28 Jan 2000 10:27:29 -0800 (PST) From: John Polstra <jdp@polstra.com> To: davidc@guild.ab.ca Cc: hackers@freebsd.org Subject: Re: java -> ld-elf.so.1: assert failed: ... lockdflt.c:55 Message-ID: <200001281827.KAA05467@vashon.polstra.com> In-Reply-To: <Pine.BSF.4.21.0001271831060.73216-100000@lodge.guild.ab.ca> References: <Pine.BSF.4.21.0001271831060.73216-100000@lodge.guild.ab.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <Pine.BSF.4.21.0001271831060.73216-100000@lodge.guild.ab.ca>,
Chad David <davidc@guild.ab.ca> wrote:
>
> Since the ~Jan 25 I have been getting an error while
> running any java programs on 3.4-stable. I cvsup'd,and
> ran a make world this afternoon and it still fails. It doesn't
> always hit... about 50% of the time.
>
> The errors is:
>
> ld-elf.so.1: assert failed: /usr/src/libexec/rtld-elf/lockdflt.c:55
[...]
> FreeBSD stronghold.guild.ab.ca 3.4-STABLE FreeBSD 3.4-STABLE #0: Thu Jan
> 27 17:04:43 MST 2000
I believe I fixed this one in -current 3 days ago, but I haven't
merged it into -stable yet. I would appreciate it if you would try
the patch below and let me know whether it clears up the problem for
you.
John
Index: lockdflt.c
===================================================================
RCS file: /home/ncvs/src/libexec/rtld-elf/lockdflt.c,v
retrieving revision 1.3.2.1
diff -u -r1.3.2.1 lockdflt.c
--- lockdflt.c 2000/01/21 02:31:50 1.3.2.1
+++ lockdflt.c 2000/01/28 18:25:01
@@ -28,10 +28,9 @@
/*
* Default thread locking implementation for the dynamic linker. It
* is used until the client registers a different implementation with
- * dllockinit(). The default implementation does mutual exclusion
- * by blocking the SIGVTALRM, SIGPROF, and SIGALRM signals. This is
- * based on the observation that most userland thread packages use one
- * of these signals to support preemption.
+ * dllockinit(). The default implementation does mutual exclusion by
+ * blocking almost all signals. This is based on the observation that
+ * most userland thread packages use signals to support preemption.
*/
#include <dlfcn.h>
@@ -63,10 +62,13 @@
l = NEW(LockDflt);
l->depth = 0;
- sigemptyset(&l->lock_mask);
- sigaddset(&l->lock_mask, SIGVTALRM);
- sigaddset(&l->lock_mask, SIGPROF);
- sigaddset(&l->lock_mask, SIGALRM);
+ sigfillset(&l->lock_mask);
+ sigdelset(&l->lock_mask, SIGTRAP);
+ sigdelset(&l->lock_mask, SIGABRT);
+ sigdelset(&l->lock_mask, SIGBUS);
+ sigdelset(&l->lock_mask, SIGSEGV);
+ sigdelset(&l->lock_mask, SIGKILL);
+ sigdelset(&l->lock_mask, SIGSTOP);
return l;
}
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001281827.KAA05467>
