You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Eugene S. Ostrovsky (JIRA)" <ji...@apache.org> on 2006/12/01 15:58:23 UTC
[jira] Updated: (HARMONY-2377) [drlvm][jvmti] TI events are
generated by VM in the incorrect order
[ http://issues.apache.org/jira/browse/HARMONY-2377?page=all ]
Eugene S. Ostrovsky updated HARMONY-2377:
-----------------------------------------
Attachment: H-2377-Fixed-order-of-jvmti-events-relative-to-ThreadStart-ThreadEnd-events.patch
Added patch:
H-2377-Fixed-order-of-jvmti-events-relative-to-ThreadStart-ThreadEnd-events.patch
1. Fixed monitor related events not to be sent before the LIVE phase.
2. Fixed TheadEnd event to be sent after run_java_detach() to avoid sending monitor events after TheadEnd.
3. Some code beautification.
NOTE:
It seems that TPTP profiler contradicts JVMTI spec.
"It is possible for other events to be generated on a thread before its thread start event."
http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html#ThreadStart
> [drlvm][jvmti] TI events are generated by VM in the incorrect order
> -------------------------------------------------------------------
>
> Key: HARMONY-2377
> URL: http://issues.apache.org/jira/browse/HARMONY-2377
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows/ia32, Linux/ia32
> Reporter: Ruslan Scherbakov
> Attachments: H-2377-Fixed-order-of-jvmti-events-relative-to-ThreadStart-ThreadEnd-events.patch, JVMTI_PhaseTest.zip
>
>
> TPTP profiler relies on the strict order of the JVMTI events. Below is the output from the test where DRLVM misses to send thread start event before monitor wait/enter events. In addition JVMTI spec says that Monitor Contended Enter
> Monitor Contended Entered, Monitor Wait, Monitor Waited should be sent n the JVMTI LIVE phase.
> DRLVM>>>
> =========================================================================================
> 1. run initial class
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r@svn.revision@, (Nov 28 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> HELLO.world
> =========================================================================================
> 2. run initial class WITH agent
> Agent_OnLoad: pVm=010020A0, options=proxy
> Agent_OnLoad: OK
> 1. MonitorWait : thread=024E0B00,203552B4, pJniEnv=01057288, object=0013F224,20380108, timeout=0
> 2. MonitorContendedEnter : thread=024E0B00,203552B4, pJniEnv=01057288, object=0013F224,20380108
> 3. ThreadStart : thread=024F3F50,2038003C, pJniEnv=024F20B8
> 4. MonitorContendedEntered: thread=024E0B00,203552B4, pJniEnv=01057288, object=0013F224,20380108
> 5. MonitorWaited : thread=024E0B00,203552B4, pJniEnv=01057288, object=0013F224,20380108, timeout=0
> 6. MonitorWait : thread=024F3F50,2038003C, pJniEnv=024F20B8, object=028BF9D4,2037FDD4, timeout=0
> 7. MonitorContendedEnter : thread=024F3F50,2038003C, pJniEnv=024F20B8, object=028BF9D4,2037FDD4
> 8. VMInit : thread=024E5730,203552B4, pJniEnv=01057288
> 9. ThreadStart : thread=024E0B00,203552B4, pJniEnv=01057288
> HELLO.world
> 10. ThreadEnd : thread=024E0B00,203552B4, pJniEnv=01057288
> 11. ThreadStart : thread=02574790,2081FFC4, pJniEnv=01057288
> 12. MonitorWait : thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4D8,20380404, timeout=0
> 13. MonitorContendedEnter : thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4D8,20380404
> 14. ThreadStart : thread=024FB4E0,20380360, pJniEnv=0256E7D0
> 15. MonitorContendedEntered: thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4D8,20380404
> 16. MonitorWaited : thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4D8,20380404, timeout=0
> 17. MonitorWait : thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4E8,20380404, timeout=0
> 18. MonitorContendedEnter : thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4E8,20380404
> 19. ThreadEnd : thread=024FB4E0,20380360, pJniEnv=0256E7D0
> 20. MonitorContendedEntered: thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4E8,20380404
> 21. MonitorWaited : thread=02574790,2081FFC4, pJniEnv=01057288, object=0013F4E8,20380404, timeout=0
> 22. MonitorContendedEntered: thread=024F3F50,2038003C, pJniEnv=024F20B8, object=028BF9D4,2037FDD4
> 23. MonitorWaited : thread=024F3F50,2038003C, pJniEnv=024F20B8, object=028BF9D4,2037FDD4, timeout=0
> 24. ThreadEnd : thread=024F3F50,2038003C, pJniEnv=024F20B8
> 25. VMDeath : pJniEnv=01057288
> ERROR : event 1 does not have a matching ThreadStart event
> WARNING: event 1 should be sent during the LIVE phase
> ERROR : event 2 does not have a matching ThreadStart event
> WARNING: event 2 should be sent during the LIVE phase
> ERROR : event 4 does not have a matching ThreadStart event
> WARNING: event 4 should be sent during the LIVE phase
> ERROR : event 5 does not have a matching ThreadStart event
> WARNING: event 5 should be sent during the LIVE phase
> WARNING: event 6 should be sent during the LIVE phase
> WARNING: event 7 should be sent during the LIVE phase
> JRockit>>>
> =========================================================================================
> 1. run initial class
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> BEA JRockit(R) (build R26.4.0-63-63688-1.5.0_06-20060626-2259-win-ia32, )
> HELLO.world
> =========================================================================================
> 2. run initial class WITH agent
> Agent_OnLoad: pVm=005ACF84, options=proxy
> Agent_OnLoad: OK
> 1. ThreadStart : thread=00394FE0,01101DD0, pJniEnv=00395124
> 2. ThreadStart : thread=40B89530,01104B38, pJniEnv=40B89674
> 3. ThreadStart : thread=40BCCAD0,01104C50, pJniEnv=40BCCC14
> 4. ThreadStart : thread=40BDF268,01104D78, pJniEnv=40BDF3AC
> 5. ThreadStart : thread=40BDFA28,01104EA0, pJniEnv=40BDFB6C
> 6. ThreadStart : thread=40BFDB80,01114130, pJniEnv=40BFDCC4
> 7. VMInit : thread=00394FE0,01101DD0, pJniEnv=00395124
> 8. ThreadStart : thread=411D5AF8,0111D3E8, pJniEnv=411D5C3C
> 9. ThreadStart : thread=411D63A8,0111D540, pJniEnv=411D64EC
> HELLO.world
> 10. ThreadEnd : thread=00394FE0,01101DD0, pJniEnv=00395124
> 11. ThreadStart : thread=411D8FB0,0112A7A0, pJniEnv=411D90F4
> 12. ThreadEnd : thread=411D8FB0,0112A7A0, pJniEnv=411D90F4
> 13. VMDeath : pJniEnv=411D90F4
> SUN>>>
> =========================================================================================
> 1. run initial class
> java version "1.5.0_09"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)
> Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode)
> HELLO.world
> =========================================================================================
> 2. run initial class WITH agent
> Agent_OnLoad: pVm=6D815BC0, options=proxy
> Agent_OnLoad: OK
> 1. ThreadStart : thread=00A83A18,02AD05F8, pJniEnv=00A82EC0
> 2. MonitorWait : thread=00A842C8,02AD05F8, pJniEnv=00A82EC0, object=00A842CC,02AD05F0, timeout=0
> 3. ThreadStart : thread=00A8DAF8,02AD06F0, pJniEnv=00A84460
> 4. MonitorWait : thread=00A8DB98,02AD06F0, pJniEnv=00A84460, object=00A8DB9C,02AD06E0, timeout=0
> 5. VMInit : thread=00A7F788,02AD04F8, pJniEnv=00036E70
> 6. ThreadStart : thread=00A8EF40,02AEB4D0, pJniEnv=00A8DD58
> 7. ThreadStart : thread=00A7F788,02AD04F8, pJniEnv=00036E70
> HELLO.world
> 8. ThreadEnd : thread=00A7F788,02AD04F8, pJniEnv=00036E70
> 9. ThreadStart : thread=00A82D28,02AF70F8, pJniEnv=00036E70
> 10. ThreadEnd : thread=00A82D28,02AF70F8, pJniEnv=00036E70
> 11. VMDeath : pJniEnv=00036E70
> WARNING: event 2 should be sent during the LIVE phase
> WARNING: event 4 should be sent during the LIVE phase
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira