From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Sat Feb 06 1999 - 23:04:10 EST
On Feb 7, 1999, Godmar Back <gback@cs.utah.edu> wrote:
>> I've got good and bad news: as soon as I moved initNativeThreads() to
>> after initNative(), I didn't get any segmentation fault on
>> Solaris/sparc and any failure to find libnative on GNU/Linux/x86. So
>> there really *is* something going on between the signal handler and
>> dlopen.
> Note that I not only got the failure to find libnative problem,
> I got actual segfault because the library was linked half-way.
Yep. In fact, I've just got this problem with libio on Solaris :-(
So delaying the initialization of the threading system doesn't really
fix the problem, just hides it better.
I have also got GCtest to fail again, but the stack trace wasn't very
useful, and the gc_lock really looked like it had never been locked
:-(
>> In fact, since Solaris was core dumping, I was able to get a stack
>> trace, and it crashed several stack frames deep inside dlopen().
>> Which indicates that it is not context switching, it is the signal
>> handler is somehow negatively interfering with dlopen :-(
> Well, not checking for EINTR would do it... although read & write
> should be restarted.
But the problem is deep within dlopen, probably within the code that
relocates the library jump table (I couldn't get function names :-(
> I didn't get any segfault on Solaris since.
I did :-(
> Could you show that patch before you install it?
It's attached. But I'm no longer sure it's a good idea to install it.
It will just hide a bug that will remain present and cause Kaffe to
crash unexpectedly :-(
However, I have completed a dozen runs of the testsuite on
GNU/Linux/x86 without any problems now. But I didn't have that much
luck on Solaris :-(
-- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Universidade Estadual de Campinas, SP, Brasil
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:59 EDT