Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8074696

Remote debugging session hangs for several minutes when calling findBootType

    Details

    • Subcomponent:
    • Resolved In Build:
      b94

      Backports

        Description

        A remote debugging session can hang for long periods of time when calling findBootType on a high delay network.

        VirtualMachineImpl.findBootType loops over all loaded classes and does a remote call to check if the signature matches.
        It will wait for the server response for each class before moving on to the next class, thus for many classes and high delay this will take a long time.

        Since we have a signature that should match, we should use retrieveClassesBySignature command that only returns matching classes.
        Then we would at worst have to loop over the number of active classloader since we want the class loaded by the boot classloader (null class loader);

          Issue Links

            Activity

            Hide
            aeriksso Andreas Eriksson (Inactive) added a comment -
            Noreg-hard / noreg-perf justification: The problem is that commands take long time to execute on high delay network where lots of classes are loaded.

            I've been using linux netem (linux network emulator) to simulate high delays, but this requires root access to setup.
            Show
            aeriksso Andreas Eriksson (Inactive) added a comment - Noreg-hard / noreg-perf justification: The problem is that commands take long time to execute on high delay network where lots of classes are loaded. I've been using linux netem (linux network emulator) to simulate high delays, but this requires root access to setup.
            Hide
            mentlich Martin Entlicher added a comment -
            Please have a look at JDK-6457137. I've already tried to address this issue, there is a patch attached. We should be able to get rid of the request for all loaded classes, IMHO.
            Show
            mentlich Martin Entlicher added a comment - Please have a look at JDK-6457137 . I've already tried to address this issue, there is a patch attached. We should be able to get rid of the request for all loaded classes, IMHO.
            Hide
            aeriksso Andreas Eriksson (Inactive) added a comment -
            Thanks for the pointer, however I took a quick look at the patch from that bug, and I think these are separate problems.
            This problem has to do with signature lookups on classes already transferred to the client.
            The problem in JDK-6457137 looks related to lots of classes being prepared and/or unloaded at once.

            I'll try applying the patch and see if it fixes the problem anyway.
            Show
            aeriksso Andreas Eriksson (Inactive) added a comment - Thanks for the pointer, however I took a quick look at the patch from that bug, and I think these are separate problems. This problem has to do with signature lookups on classes already transferred to the client. The problem in JDK-6457137 looks related to lots of classes being prepared and/or unloaded at once. I'll try applying the patch and see if it fixes the problem anyway.
            Hide
            aeriksso Andreas Eriksson (Inactive) added a comment -
            Upon closer inspection the findBootType problem looks to be fixed in close to the same way I was planning.
            I think the visibleClasses problem is still there though.
            Show
            aeriksso Andreas Eriksson (Inactive) added a comment - Upon closer inspection the findBootType problem looks to be fixed in close to the same way I was planning. I think the visibleClasses problem is still there though.
            Hide
            aeriksso Andreas Eriksson (Inactive) added a comment -
            The changes in JDK-6457137 will have to be done separately, I'll work towards pushing this fix as is.
            Show
            aeriksso Andreas Eriksson (Inactive) added a comment - The changes in JDK-6457137 will have to be done separately, I'll work towards pushing this fix as is.
            Hide
            aeriksso Andreas Eriksson (Inactive) added a comment -
            Splitting this bug into two, and will use this bug to push the smaller change to findBootType.
            I'll use https://bugs.openjdk.java.net/browse/JDK-8140515 to track and push the similar problem that visibleClasses has.
            Show
            aeriksso Andreas Eriksson (Inactive) added a comment - Splitting this bug into two, and will use this bug to push the smaller change to findBootType. I'll use https://bugs.openjdk.java.net/browse/JDK-8140515 to track and push the similar problem that visibleClasses has.
            Hide
            hgupdate HG Updates added a comment -
            URL: http://hg.openjdk.java.net/jdk9/hs-rt/jdk/rev/0701fcfde528
            User: aeriksso
            Date: 2015-11-03 18:59:15 +0000
            Show
            hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/hs-rt/jdk/rev/0701fcfde528 User: aeriksso Date: 2015-11-03 18:59:15 +0000
            Hide
            afomin Alexander Fomin (Inactive) added a comment -
            UR SQE OK to take it in PSU16_01
            Show
            afomin Alexander Fomin (Inactive) added a comment - UR SQE OK to take it in PSU16_01
            Hide
            hgupdate HG Updates added a comment -
            URL: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/0701fcfde528
            User: lana
            Date: 2015-11-25 21:18:22 +0000
            Show
            hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/0701fcfde528 User: lana Date: 2015-11-25 21:18:22 +0000

              People

              • Assignee:
                aeriksso Andreas Eriksson (Inactive)
                Reporter:
                shadowbug Shadow Bug
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: