glassfish
  1. glassfish
  2. GLASSFISH-19254

WARNING Error during registration of FlashlightProbe java.lang.RuntimeException: JSR/RET are not supported with computeFrames option

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: monitoring
    • Labels:
      None
    • Environment:

      Description

      I'm seeing a probe that is failing to be transformed by Flashlight:

      [#|2012-10-29T07:34:24.441-0700|WARNING|44.0|javax.enterprise.system.tools.monitor|_ThreadID=1;_ThreadName=main;_TimeMillis=1351521264441;_LevelValue=900;_MessageID=NCLS-MON-0508;|Error during registration of FlashlightProbe
      java.lang.RuntimeException: JSR/RET are not supported with computeFrames option
      at org.objectweb.asm.Frame.execute(Frame.java:1159)
      at org.objectweb.asm.MethodWriter.visitJumpInsn(MethodWriter.java:873)
      at org.objectweb.asm.ClassReader.accept(ClassReader.java:1316)
      at org.glassfish.flashlight.impl.client.ProbeProviderClassFileTransformer.transform(ProbeProviderClassFileTransformer.java:247)
      at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
      at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
      at sun.instrument.InstrumentationImpl.retransformClasses0(Native Method)
      at sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:144)
      at org.glassfish.flashlight.impl.client.ProbeProviderClassFileTransformer.transform(ProbeProviderClassFileTransformer.java:180)
      at org.glassfish.flashlight.impl.client.ProbeProviderClassFileTransformer.transformAll(ProbeProviderClassFileTransformer.java:121)
      at org.glassfish.flashlight.impl.client.FlashlightProbeClientMediator.transformProbes(FlashlightProbeClientMediator.java:208)
      at com.oracle.diagnostics.flightrecorder.impl.listener.JfrListener.evaluateProbeAndEventSettings(JfrListener.java:208)

      Here is the probe it choked on:

      Class: com.sun.mail.smtp.SMTPTransport
      Probes: sendMessageStart::(Ljava/lang/String;)V
      moduleprovidername: glassfish
      modulename: javamail
      probename: sendMessageStart

      Looking at SMTPTransport, it is a V1.4 class with JSR/RET instructions being used there (ie: old style try/finally handling). The fix here would either be to have Flashlight not compute the frames for older version classes, or run the JSRInlinerAdapter across it to remove those usages (ie: so compute_frames won't choke on it). Note that JSRInlinerAdapter adds to the overhead, so probably want to conditionalize handling that for older classes only (ie: either way, conditionalize using compute_frames or conditionalize using the JSRInlinerAdapter)

        Activity

        There are no comments yet on this issue.

          People

          • Assignee:
            Byron Nevins
            Reporter:
            tvlatas
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: