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

Dynamic enabling/disabling of extended DTrace probes is broken.

XMLWordPrintable

    • b93
    • generic
    • solaris_10
    • Verified

      Dynamic enabling/disabling of extended DTrace probes is broken.
      There are actually two problems.

      1. Staring from JDK6b85 turning off ExtendedDTraceProbes flag in runtime does not work.
         Extended probes are continue to be fired.

         Note that jinfo reports that ExtendedDTraceProbes was disabled but
         DTraceMethodProbes, DTraceAllocProbes, DTraceMonitorProbes flags
         are reported as enabled.

         TESTCASE_1_2
         -> disable ExtendedDTraceProbes flag
            /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag -ExtendedDTraceProbes 9048
         -> check ExtendedDTraceProbes is disabled
            /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag ExtendedDTraceProbes 9048
            PASSED
         -> check DTraceMethodProbes is disabled
            /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag DTraceMethodProbes 9048
            FAILED
         -> check DTraceAllocProbes is disabled
            /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag DTraceAllocProbes 9048
            FAILED
         -> check DTraceMonitorProbes is disabled
            /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag DTraceMonitorProbes 9048
            FAILED


      2. Dynamic turning on/off of DTraceMethodProbes, DTraceAllocProbes,
         DTraceMonitorProbes flags doesn't work at all.

         TESTCASE_2_1
         -> enable DTraceMethodProbes flag
         /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag +DTraceMethodProbes 9048
         Exception in thread "main" java.io.IOException: Command failed in target VM
              at sun.tools.attach.SolarisVirtualMachine.execute(SolarisVirtualMachine.java:130)
              at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:195)
              at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:172)
              at sun.tools.jinfo.JInfo.flag(JInfo.java:111)
              at sun.tools.jinfo.JInfo.main(JInfo.java:58)
         TEST_PASSED=0

         TESTCASE_2_2
         -> disable DTraceMethodProbes flag
         /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/bin/jinfo -flag -DTraceMethodProbes 9048
         Exception in thread "main" java.io.IOException: Command failed in target VM
              at sun.tools.attach.SolarisVirtualMachine.execute(SolarisVirtualMachine.java:130)
              at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:195)
              at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:172)
              at sun.tools.jinfo.JInfo.flag(JInfo.java:115)
              at sun.tools.jinfo.JInfo.main(JInfo.java:58)
         ...

         Actually this functionality seems never worked.
         I tested with build b81 (where this functionality was introduced) and it doesn't work.

         I am not sure if it was designed this way. But it seems
         this functionality is useful. For instance consider following case:
         1. enable only DTraceMethodProbes by starting java with flag -XX:+DTraceMethodProbes
         2. disable it by running 'jinfo -flag -DTraceMethodProbes'
         3. but then it is not possible to turn on only DTraceMethodProbes.
            it is only possible to turn on all extended probes because only
            'jinfo -flag +ExtendedDTraceProbes' works.

      Steps to reproduce the failures:
      1. cp /home/ep155969/bugs/DynamicProbes_bug1/* YOUR_DIR
      2. compile Dummy.java
      3. ./check_dynamic_probes.sh JDK_HOME

         ex: ./check_dynamic_probes.sh /net/vmsqe.sfbay/export/nightly/mustang/JDK/baseline/latest/solaris-sparc/


      The scripts are also attached.

      Note: check_dynamic_probes.sh actually doesn't run any dtrace scripts yet.
            you can manually play with ObjectAllocation.d (and Alloc.java) to check for sure that probes
            are continue to be fired.

            sundar Sundararajan Athijegannathan
            epavlova Ekaterina Pavlova
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: