harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Armand Navabi" <anav...@purdue.edu>
Subject RE: [drlvm] [launcher] Executable hangs
Date Tue, 26 Sep 2006 16:24:46 GMT
> What is the kernel version BTW? There could be some issues with
> 2.4.x, currently everybody works with 2.6.x

The kernel version is 2.6.17.8.

> concerning hythread_exit .. Did you resolve it already?  I see the
> symbol _undefined_ too (and no definition of the symbol in hythread.so
> or any other lib, although sources are fine, probably some bug in the
> build system), but dynamic linker does not complain on my machine.

No, I did not resolve this problem.  When I try to run ./java by itself I
see the following:

./java: relocation error:
/homes/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/libhyprt.so
: symbol hythread_exit, version HYTHR_0.1 not defined in file libhythr.so
with link time reference

And then it hangs.  I did find that this would not happen (i.e. ./java would
run just fine) if I overwrite libhythr.so with the libhythr.so from the
classlib's /deploy/jdk/jre/bin directory.  Is that a safe way to resolve
this problem?

> hm, gdb .. did you 'export' LD_LIBRARY_PATH? 
> (sorry for the dummy question:)

No need apologize.  I'm sure in the end it will be a dummy mistake that I'm
making.  But yes, I did export the LD_LIBRARY_PATH.  I had it first set to
the deploy/jre/bin directory.  I also tried to set it to put
deploy/jre/bin/default also in the path.

Let me be clear when I say I am unable to debug with gdb.  First the problem
I am having is when I try to set a breakpoint I always see this:

(gdb) b jni.cpp:478
No source file named jni.cpp.
Make breakpoint pending on future shared library load? (y or [n]) y

And then when I run the program it never stops at the breakpoint, though I
see the print I have inserted in the code.  Secondly, and more importantly,
if I try to do anything interesting, like run helloworld, gdb seems to lose
a thread and then hang (says it Cannot find a thread.  Invalid thread
handle).  I have to then stop it and go kill it.

GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db
library "/lib/libthread_db.so.1".

(gdb) r helloworld
Starting program:
/u/u12/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/java
helloworld
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11007)]
[New Thread 32769 (LWP 11010)]
[New Thread 16386 (LWP 11011)]
Cannot find thread 32769: invalid thread handle
(gdb) q
The program is running.  Exit anyway? (y or n) y

[1]+  Stopped                 gdb ./java


Thanks,
Armand


On the 0x1F0 day of Apache Harmony Armand Navabi wrote:
> > When I try to run ./java helloworld, it just hangs and I have to kill
> > the process.  I investigated this a little bit, and I found that it
> > hangs on the call to FindClass (in main.c line around line 1199).   
> > I am
> > unable debug with gdb also, so I have resorted to printf's, and in
> > jni.cpp, I found the definition of FindClass, and put an printf to see
> > what class it is trying to find when it hangs.  I see the following:
> >
> > Line 478 in jni.cpp: inside JNICALL FindClass: java/lang/Thread
> >
> > Also, when I run ./java -Xtrace:em, I get the following (and it  
> > hangs):
> > ...
> > EM: compile start:[JET_DPGO n=802] java/lang/Thread::join()V
> > EM: compile done:[JET_DPGO n=802: OK] java/lang/Thread::join()V
> > EM: compile start:[JET_DPGO n=803] java/lang/Object::wait()V
> > EM: compile done:[JET_DPGO n=803: OK] java/lang/Object::wait()V
> > Line 478 in jni.cpp: inside JNICALL FindClass: java/lang/Thread
> >
> > Again, it seems to always hang after FindClass is called for
> > java/lang/Thread.
> >
> > I have tried setting LD_LIBRARY_PATH as suggested earlier.  I also  
> > have
> > JAVA_HOME set (and I have tried it with it unset).  Everything  
> > seems to
> > have the same behavior.
> > anavabi@gator ~/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin $  
> > echo
> > $LD_LIBRARY_PATH
> > /homes/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/:/ 
> > homes/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin/ 
> > default
> > anavabi@gator ~/Harmony/enhanced/drlvm/trunk/build/deploy/jre/bin $  
> > echo
> > $JAVA_HOME
> > /homes/anavabi/Harmony/enhanced/drlvm/trunk/build/deploy/jre
> >
> > I am using Gentoo Linux.  Any ideas?
> 
> > Thanks,
> > Armand
> >
> > Gregory Shimansky wrote:
> >> On Friday 22 September 2006 14:31 Egor Pasko wrote:
> >>
> >>> what makes me really nervous is that I cannot debug in GDB on Linux
> >>> (!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
> >>>
> >>> When GDB starts, it becomes broken right after the start:
> >>> [New Thread 1080397952 (LWP 13879)]
> >>> [New Thread 1083603888 (LWP 13882)]
> >>> Cannot find user-level thread for LWP 13879: generic error
> >>>
> >>> Did anybody come across this problem recently? I googled a  
> >>> little, but
> >>> could not find any valuable comments. I remember, there was no such
> >>> problem in older days!! Is that our new ThreadManager that does  
> >>> things
> >>> like this? or is it something else?
> >>>
> >>
> >> I've seen in another thread. The problem with gdb is caused  
> >> because process
> >> reexecs itself with new environment (there is no other way known  
> >> to tell
> >> dynamic linker to use a library path). This is new launcher  
> >> feature necessary
> >> to get rid of java shell script and use a real executable.
> >>
> >> Ivan Volosyuk investigated the conditions when launcher performs  
> >> execing
> >> itself to set LD_LIBRARY_PATH and it appears (unless fixed  
> >> recently) that you
> >> need to set LD_LIBRARY_PATH=<HDK path>/bin/:<HDK path>/bin/ 
> >> default. Don't
> >> forget a tailing slash in the first path :)
> >>
> >> Anyway, to get the correct LD_LIBRARY_PATH which launcher wants  
> >> you can get it
> >> from /proc/`pidof java`/environ if you launch a simple java  
> >> program and catch
> >> its reexeced environment. If LD_LIBRARY_PATH contents is equal to  
> >> what
> >> launcher wants, reexecing doesn't happen and this allows normal  
> >> debugging.
> >>
> >> I think we should document this since it is going to stay for a  
> >> long time and
> >> is really required for development on Linux.
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> 
> 
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> 
> 

-- 
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message