RFR 8203174: [Graal] JDI tests fail with Unexpected exception: com.sun.jdi.ObjectCollectedException

Daniil Titov daniil.x.titov at oracle.com
Fri Nov 9 20:26:20 UTC 2018

Hi Dean, 

The blocking issue  for suspended JVMCI compiler thread in case of Graal and -XComp was recently solved in  JDK-8195627 " Graal] nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026 hangs with Graal in Xcomp mode" .  Could you please say do you think it will not be sufficient for the case you described?

Just in case please find below the links to Jira and review thread for JDK-8195627:
Review thread :  http://mail.openjdk.java.net/pipermail/serviceability-dev/2018-October/025764.html
Jira issue: https://bugs.openjdk.java.net/browse/JDK-8195627 


On 11/9/18, 12:14 PM, "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com> wrote:

    We need to understand/formulate what requirements/limits the Graal 
    compiler has to follow and then negotiate it with the Compiler team.
    I feel it is not a good idea to work around these issues to make the 
    tests to pass.
    Sorry that I've lost track of the discussion - will need to re-read the 
    email thread thoroughly.
    On 11/9/18 11:42, Chris Plummer wrote:
    > This sounds like a general issue with debugging and graal. Debuggers 
    > expect to be able to suspend all threads, and then resume just the 
    > ones they want to see executed. You're saying there are situations in 
    > which the resumed thread will end up blocking on the suspended 
    > compiler thread(s).
    > Chris
    > On 11/9/18 10:19 AM, dean.long at oracle.com wrote:
    >> With OSR, a compile can be initiated in a for loop, so I'd say this 
    >> is still not safe if the compile can be blocking, which happens if:
    >>     bool is_blocking = !directive->BackgroundCompilationOption || 
    >> CompileTheWorld || ReplayCompiles;
    >> So that probably means the test cannot be run with -Xcomp.
    >> dl
    >> On 11/8/18 3:12 PM, Daniil Titov wrote:
    >>> The proposed fix for this case is to suspend VM while the body of 
    >>> the "for" loop (lines 150 - 356) is executed while ensuring that for 
    >>> line 151 ( line = pipe.printlln()) VM is temporary resumed ( line 
    >>> numbers are given for an original version of 
    >>> test/hotspot/jtreg/vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance001.java)

More information about the hotspot-compiler-dev mailing list