dpocock created WFLY-3054:
-----------------------------
Summary: getPlatformMBeanServer behaves badly when called from premain class
such as jmxetric
Key: WFLY-3054
URL:
https://issues.jboss.org/browse/WFLY-3054
Project: WildFly
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JMX
Affects Versions: JBoss AS7 7.1.1.Final
Reporter: dpocock
Assignee: Kabir Khan
JMXetric is a management agent JAR loaded using the JVM argument
java -javaagent:$JARLIBS/jmxetric-1.0.2.jar .....
In the premain method (executed before JBoss main() is invoked), jmxetric calls the static
method:
ManagementFactory.getPlatformMBeanServer()
This puts JMX into a bad state and the jboss.as tree is completely missing when browsed
with jconsole
As a workaround, jmxetric will defer the call to
ManagementFactory.getPlatformMBeanServer() using the "initialdelay" parameter
set to a value such as 20 seconds.
However, it would be good if JBoss could act more cleanly in this situation, for example,
throwing an exception if ManagementFactory.getPlatformMBeanServer() is called too early,
or finding a way to add the "jboss.as" stuff later.
The 1.0.6 release of jmxetric will include the workaround by default. The bug can be
reproduced by setting initialdelay="0" in the sample jmxetric.xml or using
jmxetric 1.0.5
jmxetric versions before 1.0.5 suffer from issues with the jboss logger as discussed in
WFLY-895, so this issue was only discovered after removing the logging statements from
jmxetric.
Also covered in jmxetric github:
https://github.com/ganglia/jmxetric/issues/9
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira