Re: java - ld-elf.so.1: assert failed: ... lockdflt.c:55

2000-01-28 Thread John Polstra

In article [EMAIL PROTECTED],
Chad David  [EMAIL PROTECTED] 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: java - ld-elf.so.1: assert failed: ... lockdflt.c:55

2000-01-28 Thread Chad David


Yes this fixed it.  Thanks.

Chad


On Fri, 28 Jan 2000, John Polstra wrote:

 In article [EMAIL PROTECTED],
 Chad David  [EMAIL PROTECTED] 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.c2000/01/21 02:31:50 1.3.2.1
 +++ lockdflt.c2000/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 [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: java - ld-elf.so.1: assert failed: ... lockdflt.c:55

2000-01-28 Thread John Polstra

In article [EMAIL PROTECTED],
Chad David  [EMAIL PROTECTED] wrote:
 
 Yes this fixed it.  Thanks.

Thanks for testing it.  I have merged the fix into -stable now.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message