harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Evgueni Brevnov" <evgueni.brev...@gmail.com>
Subject Re: [drlvm] Need help debugging
Date Thu, 14 Sep 2006 10:06:01 GMT
OK, let's look what that code does.
1) First, it unconditionally skips Thread.runImpl stack frame. This is
a wrapper for Thread.run method to handle uncaught exceptions
properly. With the former DRLVM launcher we always had Thread.runImpl
method on the stack. Since this is artificial frame added by VM we
don't include it in stack trace. With the new launcher there is no
Thread.runImpl frame on the stack for attached native threads
including the main thread. That's why we shouldn't skip that frame. We
still do need to skip Thread.runImpl frame for threads which were
created by calling Thread.start method. So it seems the "right" fix
should distinguish between these cases. If we don't skip frames at all
the worst thing which can happen is printing one more frame on the
bottom of the stack trace. Seems to be not really critical.... 2)
Second, it skips 3 more frames for the main thread. Again with the new
launcher we just don't have it. No need to care about it now.

Thanks
Evgueni.

> On 9/14/06, Geir Magnusson Jr. <geir@pobox.com> wrote:
> I'd like to understand why this is no longer necessary.
>
> (Just provide some background for all of us to help start understanding
> the structure and operation of DLRVM....)
>
> geir
>
>
> Vladimir Gorr wrote:
> > Probably, you didn't note I've commented this fragment of code (firts &
> > last
> > lines).
> > Sorry I didn't mention about this before. After these changes I could
> > sucessfully start the ActiveMQ.
> > Before I have the following error:
> >
> > Assertion failed: size >= skip
> > Trying to skip 6 frames but there are only 5 frames in stack
> > java:
> > /nfs/ins/proj/drl/coreapi/vgorr/drlvm/trunk/vm/vmcore/src/kernel_classes/native/org_apache_harmony_vm_VMStack.cpp:301:
> >
> > _jobject* Java_org_apache_harmony_vm_VMStack_getStackTrace(JNIEnv*,
> > _jobject*, _jobject*): Assertion `size >= skip' failed.
> > abort_handler()
> >
> > Thanks,
> > Vladimir.
> >
> > On 9/13/06, Geir Magnusson Jr. <geir@pobox.com> wrote:
> >>
> >> I'm a little skeptical, as I had that change in before you first tested
> >> and found a problem, right?
> >>
> >> geir
> >>
> >>
> >> Vladimir Gorr wrote:
> >> > vm\vmcore\src\kernel_classes\native\org_apache_harmony_vm_VMStack.cpp
> >> > ...
> >> > * /*
> >> > *    // skip Thread.runImpl()
> >> >    size--;
> >> >
> >> >    // skip the VMStart$MainThread if one exits from the bottom of the
> >> stack
> >> >    // along with 2 reflection frames used to invoke method main
> >> >    static String* starter_String =
> >> > genv->string_pool.lookup("java/lang/VMStart$MainThread");
> >> >    Method_Handle method = frames[size].method;
> >> >    assert(method);
> >> >    // skip only for main application thread
> >> >    if (!strcmp(method_get_name(method), "runImpl")
> >> >        && method->get_class()->name == starter_String) {
> >> >        int rem = size - skip-1;
> >> >        size -= rem < 2 ? rem : 2;
> >> >    }
> >> >    ASSERT(size >= skip, "Trying to skip " << skip
> >> >        << " frames but there are only "
> >> >        << size << " frames in stack");
> >> > *    */*
> >> > ...
> >> >
> >> >
> >> > Thanks,
> >> > Vladimir.
> >> >
> >> > On 9/13/06, Geir Magnusson Jr. <geir@pobox.com> wrote:
> >> >>
> >> >>
> >> >>
> >> >> Vladimir Gorr wrote:
> >> >> > I was able to sucessfully run both applications (Eclipse &
ActiveMQ)
> >> >> for
> >> >> > the
> >> >> > recent build.
> >> >>
> >> >> what changed?
> >> >>
> >> >> geir
> >> >>
> >> >> >
> >> >> > Thanks,
> >> >> > Vladimir.
> >> >> >
> >> >> > On 9/12/06, Geir Magnusson Jr. <geir@pobox.com> wrote:
> >> >> >>
> >> >> >> doh.  Thanks.  I feel dumb for not trying the simplest thing
first
> >> :)
> >> >> >>
> >> >> >> There's a test...
> >> >> >>
> >> >> >> geir
> >> >> >>
> >> >> >>
> >> >> >> Anton Luht wrote:
> >> >> >> > Hello,
> >> >> >> >
> >> >> >> > The 'java -jar' launcher prints dump and exits even on
a minimal
> >> >> >> > HelloWorld app jar - please see
> >> >> >> > http://issues.apache.org/jira/browse/HARMONY-1444
> >> >> >> >
> >> >> >> > On 9/12/06, Anton Luht <anton.luht@gmail.com> wrote:
> >> >> >> >> No, I used hand-made build from SVN.
> >> >> >> >>
> >> >> >> >> BTW, sorry for confusion about 'broken data'. The
pointer value
> >> is
> >> >> >> >> changed inside the method - this assignment should
be removed.
> >> >> >> >>
> >> >> >> >> On 9/12/06, Vladimir Gorr <vvgorr@gmail.com>
wrote:
> >> >> >> >> > Did you run this application for the recent
binaries got from
> >> the
> >> >> >> SVN
> >> >> >> >> > sources?
> >> >> >> >> > As for me my results differ from Geir ones,
namely, DRLVM
> >> crashes
> >> >> >> >> for both
> >> >> >> >> > Windows & Linux as follows:
> >> >> >> >> >
> >> >> >> >> > =======
> >> >> >> >> > Windows
> >> >> >> >> > =======
> >> >> >> >> >
> >> >> >> >> > vgorr@ /cygdrive/c/Tools/incubator-activemq-4.0
> >> >> >> >> > $ echo JAVA_HOME
> >> >> >> >> > JAVA_HOME
> >> >> >> >> >
> >> >> >> >> > vgorr@ /cygdrive/c/Tools/incubator-activemq-4.0
> >> >> >> >> > $ echo $CLASSPATH
> >> >> >> >> > c:/Tools/incubator-activemq-4.0/lib
> >> >> >> >> >
> >> >> >> >> > vgorr@ /cygdrive/c/Tools/incubator-activemq-4.0
> >> >> >> >> > $ which java
> >> >> >> >> >
> >> >> >> >>
> >> >> >>
> >> >>
> >> /cygdrive/c/DrlSrc/drlvm/trunk/build/win_ia32_msvc_debug/deploy/jre/bin/java
> >>
> >> >>
> >> >> >>
> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> > vgorr@ /cygdrive/c/Tools/incubator-activemq-4.0
> >> >> >> >> > $ bin/activemq
> >> >> >> >> > cygpath: can't convert empty path
> >> >> >> >> >
> >> >> >> >> > An unhandled error (4) has occurred.
> >> >> >> >> > HyGeneric_Signal_Number=00000004
> >> >> >> >> > ExceptionCode=c0000005
> >> >> >> >> > ExceptionAddress=00F3D648
> >> >> >> >> > ContextFlags=0001003f
> >> >> >> >> > Handler1=00401010
> >> >> >> >> > Handler2=11105D20
> >> >> >> >> > InaccessibleAddress=00F3D648
> >> >> >> >> > EDI=0013F9D4
> >> >> >> >> > ESI=0013F768
> >> >> >> >> > EAX=00000000
> >> >> >> >> > EBX=0000000B
> >> >> >> >> > ECX=00000001
> >> >> >> >> > EDX=0000000C
> >> >> >> >> > EIP=00F3D648
> >> >> >> >> > ESP=0013F764
> >> >> >> >> > EBP=0013F770
> >> >> >> >> > Module=
> >> >> >> >> > Module_base_address=00F30000
> >> >> >> >> > Offset_in_DLL=0000d648
> >> >> >> >> > ====
> >> >> >> >> > Linux
> >> >> >> >> > ====
> >> >> >> >> >
> >> >> >> >> > sh bin/activemq
> >> >> >> >> > java:
> >> >> >> >> >
> >> >> >> >>
> >> >> >>
> >> >>
> >> /nfs/ins/proj/drl/coreapi/vgorr/drlvm/trunk/vm/vmcore/src/exception/exceptions.cpp:143:
> >>
> >> >>
> >> >> >>
> >> >> >> >>
> >> >> >> >> > _jobject* create_exception(const char*): Assertion
> >> >> >> >> > `hythread_is_suspend_enabled()' failed.
> >> >> >> >> > abort_handler()
> >> >> >> >> > Aborted
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > Thanks,
> >> >> >> >> > Vladimir.
> >> >> >> >> >
> >> >> >> >> > On 9/12/06, Anton Luht <anton.luht@gmail.com>
wrote:
> >> >> >> >> > >
> >> >> >> >> > > Hello,
> >> >> >> >> > >
> >> >> >> >> > > I'm observing the same problem - ActiveMQ
can't start - on
> >> >> DRLVM
> >> >> +
> >> >> >> >> > > Classlibrary build 442240 .
> >> >> >> >> > >
> >> >> >> >> > > The problem I see first is that in
> >> >> >> >> > > <classlib
> >> >> >> root>\modules\luni\src\main\native\launcher\shared\main.c
> >> >> >> >> > >
> >> >> >> >> > > in function 'static int invocation' after
call
> >> 'createVMArgs'
> >> >> >> >> variable
> >> >> >> >> > > 'mainClassJar' contains garbale while in
the very end of
> >> >> 'static
> >> >> >> int
> >> >> >> >> > > createVMArgs' it contains valid string
> >> >> >> >> > > 'org.apache.harmony.kernel.vm.JarRunner'
. If we comment out
> >> >> >> >> > > 'hymem_allocate_memory' in that function:
> >> >> >> >> > >
> >> >> >> >> > > if (isStandaloneJar)
> >> >> >> >> > >    {
> >> >> >> >> > >      if (useDefaultJarRunner == 0)
> >> >> >> >> > >        {
> >> >> >> >> > >          //:::commented out:::: mainClassJar
=
> >> >> >> >> hymem_allocate_memory (50);
> >> >> >> >> > >          if (mainClassJar == NULL)
> >> >> >> >> > >
> >> >> >> >> > > the application will crash a little later.
Note: we can
> >> comment
> >> >> >> this
> >> >> >> >> > > out because memory for mainClassJar is
already allocated in
> >> the
> >> >> >> >> > > calling method.
> >> >> >> >> > >
> >> >> >> >> > > I believe that the general problem is that
contents of
> >> memory
> >> >> >> >> alocated
> >> >> >> >> > > with hymem_allocate_memory get somehow
broken on exit from a
> >> >> >> method.
> >> >> >> >> > >
> >> >> >> >> > > On 9/9/06, Geir Magnusson Jr. <geir@pobox.com>
wrote:
> >> >> >> >> > > > I applied the GCv4.1 patch and now
I pass smoke test.  I
> >> >> suspect
> >> >> >> >> it may
> >> >> >> >> > > > be because the patch modifies the
LOS test, but I'm not so
> >> >> sure.
> >> >> >> >> > > >
> >> >> >> >> > > > that patch (HARMONY-1269) is a sole-author
patch to our
> >> >> existing
> >> >> >> >> > > > codebase, and while I do have a BCC
to put in SVN, I think
> >> >> that
> >> >> >> >> this is
> >> >> >> >> > > > a patch, and not a "bulk contribution",
so I'll go forward
> >> >> and
> >> >> >> >> commit
> >> >> >> >> > > it.
> >> >> >> >> > > >
> >> >> >> >> > > > geir
> >> >> >> >> > > >
> >> >> >> >> > > >
> >> >> >> >> > > > Geir Magnusson Jr. wrote:
> >> >> >> >> > > > > More news - I'm not passing the
smoke tests. gc.LOC just
> >> >> spins
> >> >> >> >> (and
> >> >> >> >> > > > > sucks a lot of memory in).
> >> >> >> >> > > > >
> >> >> >> >> > > > > Clearly what I thought were trivial
changes to switch to
> >> >> use
> >> >> >> the
> >> >> >> >> > > > > launcher had hidden effects.
 Any suggestions where to
> >> >> start
> >> >> >> >> looking?
> >> >> >> >> > > > >
> >> >> >> >> > > > > geir
> >> >> >> >> > > > >
> >> >> >> >> > > > > Geir Magnusson Jr. wrote:
> >> >> >> >> > > > >> I was testing the DRLVM-in-Launcher
setup and something
> >> is
> >> >> >> >> seriously
> >> >> >> >> > > > >> broken.
> >> >> >> >> > > > >>
> >> >> >> >> > > > >> On Ubuntu, both debug and
release builds, it will run
> >> >> Tomcat
> >> >> >> >> ok, but
> >> >> >> >> > > > >> when I try something like
Eclipse 3.2 or ActiveMQ 4.0.2
> >> >> the
> >> >> >> >> program
> >> >> >> >> > > > >> runs and silently exits.
 No log output, no console
> >> >> output.
> >> >> >> >> > > > >>
> >> >> >> >> > > > >> I've been trying to find
a hint of what is making it
> >> >> unhappy,
> >> >> >> >> but so
> >> >> >> >> > > > >> far, no luck.
> >> >> >> >> > > > >>
> >> >> >> >> > > > >> I've been staring at the
output with -Xlog and -Xtrace,
> >> >> and
> >> >> >> >> there
> >> >> >> >> > > > >> doesn't seem to be any errors,
but I don't know what to
> >> >> look
> >> >> >> >> for.  (
> >> >> >> >> > > > >>
> >> >> >> >> > > > >> I've captured the stream
and placed it here :
> >> >> >> >> > > > >>
> >> >> >> >> > > > >>
> >> >> >> >> http://people.apache.org/~geirm/activemq-logstream-20060909.txt
> >> >> >> >> > > > >>
> >> >> >> >>
> >> http://people.apache.org/~geirm/activemq-tracestream-20060909.txt
> >> >> >> >> > > > >>
> >> >> >> >> > > > >> If anyone has any hints,
I'd be mighty obliged...
> >> >> >> >> > > > >>
> >> >> >> >> > > > >> geir
> >> >> >> >
> >> >> >>
> >> >> >>
> >> ---------------------------------------------------------------------
> >> >> >> 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
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> 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