harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Popov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-2377) [drlvm][jvmti] TI events are generated by VM in the incorrect order
Date Thu, 30 Nov 2006 13:22:23 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-2377?page=comments#action_12454606 ] 
            
Ivan Popov commented on HARMONY-2377:
-------------------------------------

It looks like Sun's VM violates JVMTI spec and sends monitor events before VMInit, i.e., out
of live phase. However, it sends these events in right order with ThreadStart event, and DRLVM
should follow the same strategy in order to not confuse JVMTI tools. For example, this bug
affects TPTP profiler running with DRLVM.

> [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: 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

        

Mime
View raw message