harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Deakin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6305) [jdktools][jdwp] Unexpected VM_DEATH events running JDWP tests in Java 6 branch
Date Wed, 09 Sep 2009 08:47:57 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12752984#action_12752984
] 

Oliver Deakin commented on HARMONY-6305:
----------------------------------------

For the remaining tests it seems that when we get the monitor_wait event triggered, we are
getting back the wrong monitor class name in the Java 6 JDWP.

Instead of getting the monitor class name returned as "Lorg/apache/harmony/jpda/tests/jdwp/Events/MonitorWaitMockMonitor;"
(as in the java 5 case) we get back "Ljava/lang/VMThreadManager;" which is clearly wrong.
Since the name does not match the event filters we have set, the test fails.

The code we use to get the monitor name has changed from the java 5 to java 6 jdwp versions.
In java 5 we used:
   class = jni->getObjectClass(monitorobject);
   jvmti->GetClassSignature(class, &signature, 0);
to get the class signature. In the java 6 branch this has changed to:
   jvmti->GetFrameLocation(thread, 0, &method, &location);
   jvmti->GetMethodDeclaringClass(method, &class);
   jvmti->GetClassSignature(class, &signature, 0);

Unfortunately it seems this approach does not work correctly - I have not determined whether
this is caused by the java 6 jdwp making the wrong calls to get the signature, or by drlvm
returning the wrong values from those calls.

> [jdktools][jdwp] Unexpected VM_DEATH events running JDWP tests in Java 6 branch
> -------------------------------------------------------------------------------
>
>                 Key: HARMONY-6305
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6305
>             Project: Harmony
>          Issue Type: Bug
>          Components: JDK
>            Reporter: Oliver Deakin
>            Assignee: Oliver Deakin
>
> The following two failures/errors:
>  Invalid event kind, expected:<8(CLASS_PREPARE)> but was:<99(VM_DEATH)>
>  junit.framework.AssertionFailedError: Invalid event kind, expected:<8(CLASS_PREPARE)>
but was:<99(VM_DEATH)>
> or
>  org.apache.harmony.jpda.tests.framework.jdwp.ParsedEvent$Event_VM_DEATH
>  java.lang.ClassCastException: org.apache.harmony.jpda.tests.framework.jdwp.ParsedEvent$Event_VM_DEATH
> are the cause of failures in these tests:
> org.apache.harmony.jpda.tests.jdwp.Events.ClassPrepareTest.testClassPrepareEventWithSourceDebugExtension001
> org.apache.harmony.jpda.tests.jdwp.Events.ClassPrepareTest.testClassPrepareEventWithSourceDebugExtension002
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorContendedEnteredTest.testMonitorContendedEntteredForClassOnly

> org.apache.harmony.jpda.tests.jdwp.Events.MonitorContendedEnterTest.testMonitorContendedEnterForClassOnly
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.testMonitorWaitedForClassOnly
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.testMonitorWaitedForClassMatchExact
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.testMonitorWaitedForClassMatchFirst
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.testMonitorWaitedForClassMatchSecond
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitedTest.testMonitorWaitedForClassExclude
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.testMonitorWaitForClassOnly
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.testMonitorWaitForClassMatchExact
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.testMonitorWaitForClassMatchFirst
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.testMonitorWaitForClassMatchSecond
> org.apache.harmony.jpda.tests.jdwp.Events.MonitorWaitTest.testMonitorWaitForClassExclude
> when running the JDWP tests in the Java 6 branch. It is likely they all have the same
cause. 
> Previously when I investigated the "expected:<8(CLASS_PREPARE)> but was:<99(VM_DEATH)>"
failure I found that the CLASS_PREPARE event was being triggered as expected, but the test
did not seem to be catching it for some reason. It is possible there could be a timing hole
in the test causing these failures (i.e. the debuggee VM is terminating before the debugger
VM is ready, so the debugger VM only sees the debuggee shutting down), but the failures need
more investigation to detemine the cause. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message