Uploaded image for project: 'Byteman'
  1. Byteman
  2. BYTEMAN-415

Byteman sample ThreadHistoryMonitorHelper needs to be adjusted for JDK11

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Major
    • 4.0.17
    • 4.0.16
    • Samples
    • None

    Description

      The sample ThreadHistoryMonitorHelper which helps to track thread history to investigate race conditions do not work properly in JDK11. The helper provides a way to work with the data via JMX. For that purpose the helper is declared as MXBean which fails to be registered - started on JDK11 with exception[1].

      Plus the history monitor helper and the script works only with Runnable and it should consider the Callable as well.

      [1]

      INFO  [stdout] (main) Installed rule using default helper : Register ThreadHistoryMonitorHelper mbean
      ERROR [stderr] (main) javax.management.NotCompliantMBeanException: org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelperMXBean: Method org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelperMXBean.getCreateEvents has parameter or return type that cannot be translated into an open type
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.Introspector.throwException(Introspector.java:467)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:120)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.analyzer(MBeanAnalyzer.java:102)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.getAnalyzer(MXBeanIntrospector.java:74)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MBeanIntrospector.getPerInterface(MBeanIntrospector.java:192)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MBeanSupport.<init>(MBeanSupport.java:138)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MXBeanSupport.<init>(MXBeanSupport.java:66)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:203)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:888)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
      ERROR [stderr] (main)   at org.jboss.as.jmx@17.0.0.Beta1//org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.registerMBean(PluggableMBeanServerImpl.java:1518)
      ERROR [stderr] (main)   at org.jboss.as.jmx@17.0.0.Beta1//org.jboss.as.jmx.PluggableMBeanServerImpl.registerMBean(PluggableMBeanServerImpl.java:874)
      ERROR [stderr] (main)   at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper.registerHelperMBean(ThreadHistoryMonitorHelper.java:105)
      ERROR [stderr] (main)   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      ERROR [stderr] (main)   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      ERROR [stderr] (main)   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      ERROR [stderr] (main)   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      ERROR [stderr] (main)   at org.jboss.byteman.rule.expression.MethodExpression.interpret(MethodExpression.java:366)
      ERROR [stderr] (main)   at org.jboss.byteman.rule.Action.interpret(Action.java:144)
      ERROR [stderr] (main)   at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper_HelperAdapter_Interpreted_30.fire(ThreadMonitorHistory.btm)
      ERROR [stderr] (main)   at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper_HelperAdapter_Interpreted_30.execute0(ThreadMonitorHistory.btm)
      ERROR [stderr] (main)   at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper_HelperAdapter_Interpreted_30.execute(ThreadMonitorHistory.btm)
      ERROR [stderr] (main)   at org.jboss.byteman.rule.Rule.execute(Rule.java:809)
      ERROR [stderr] (main)   at org.jboss.byteman.rule.Rule.execute(Rule.java:778)
      ERROR [stderr] (main)   at org.jboss.modules.Main.main(Main.java:621)
      ERROR [stderr] (main) Caused by: java.lang.IllegalArgumentException: Method org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelperMXBean.getCreateEvents has parameter or return type that cannot be translated into an open type
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:46)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:84)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:54)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.initMaps(MBeanAnalyzer.java:137)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:118)
      ERROR [stderr] (main)      ... 24 more
      ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Cannot convert type: org.jboss.byteman.sample.helper.ThreadMonitorEvent[]
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException(DefaultMXBeanMappingFactory.java:1445)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:261)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.<init>(ConvertingMethod.java:212)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:41)
      ERROR [stderr] (main)      ... 28 more
      ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Cannot convert type: org.jboss.byteman.sample.helper.ThreadMonitorEvent
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException(DefaultMXBeanMappingFactory.java:1445)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:261)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeArrayOrCollectionMapping(DefaultMXBeanMappingFactory.java:319)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeMapping(DefaultMXBeanMappingFactory.java:289)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:259)
      ERROR [stderr] (main)      ... 30 more
      ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Cannot convert type: org.jboss.byteman.sample.helper.ThreadMonitored
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException(DefaultMXBeanMappingFactory.java:1445)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:261)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeCompositeMapping(DefaultMXBeanMappingFactory.java:473)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeMapping(DefaultMXBeanMappingFactory.java:294)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:259)
      ERROR [stderr] (main)      ... 33 more
      ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Recursive data structure, including org.jboss.byteman.sample.helper.ThreadMonitored
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:248)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeCompositeMapping(DefaultMXBeanMappingFactory.java:473)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeMapping(DefaultMXBeanMappingFactory.java:294)
      ERROR [stderr] (main)   at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:259)
      ERROR [stderr] (main)      ... 36 more
      

      Attachments

        Activity

          People

            ochaloup@redhat.com Ondrej Chaloupka (Inactive)
            ochaloup@redhat.com Ondrej Chaloupka (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: