-
Bug
-
Resolution: Done
-
Blocker
-
29.0.0.Beta5
-
None
-
None
In CI tests:
15:01:40,570 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) WFLYCTL0013: Operation ("read-attribute") failed - address: ([ ("core-service" => "platform-mbean"), ("type" => "garbage-collector"), ("name" => "global") ]): javax.management.openmbean.InvalidKeyException: Argument key="duration" is not an existing item name for this CompositeData instance. at java.management/javax.management.openmbean.CompositeDataSupport.get(CompositeDataSupport.java:271) at org.jboss.as.platform-mbean@29.0.0.Beta5//org.jboss.as.platform.mbean.ExtendedGarbageCollectorMBean.getLastGcInfo(ExtendedGarbageCollectorMBean.java:84) at org.jboss.as.platform-mbean@29.0.0.Beta5//org.jboss.as.platform.mbean.GarbageCollectorMXBeanAttributeHandler.storeExtendedResult(GarbageCollectorMXBeanAttributeHandler.java:87) at org.jboss.as.platform-mbean@29.0.0.Beta5//org.jboss.as.platform.mbean.GarbageCollectorMXBeanAttributeHandler.executeReadAttribute(GarbageCollectorMXBeanAttributeHandler.java:53) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:1057) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:778) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:469) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1435) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:436) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.ModelControllerImpl.lambda$executeForResponse$0(ModelControllerImpl.java:246) at org.wildfly.security.elytron-base@2.6.4.Final//org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:304) at org.wildfly.security.elytron-base@2.6.4.Final//org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:270) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.ModelControllerImpl.executeForResponse(ModelControllerImpl.java:246) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.ModelControllerImpl.executeOperation(ModelControllerImpl.java:240) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:223) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:228) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:150) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:146) at org.wildfly.security.elytron-base@2.6.4.Final//org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:328) at org.wildfly.security.elytron-base@2.6.4.Final//org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:285) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:237) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:208) at org.jboss.as.controller@29.0.0.Beta5//org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:146) at org.jboss.as.protocol@29.0.0.Beta5//org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$1.doExecute(ManagementRequestContextImpl.java:59) at org.jboss.as.protocol@29.0.0.Beta5//org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$AsyncTaskRunner.run(ManagementRequestContextImpl.java:149) at org.jboss.threads@3.9.1//org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads@3.9.1//org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651) at org.jboss.threads@3.9.1//org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630) at org.jboss.threads@3.9.1//org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622) at org.jboss.threads@3.9.1//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589) at java.base/java.lang.Thread.run(Thread.java:853) at org.jboss.threads@3.9.1//org.jboss.threads.JBossThread.run(JBossThread.java:501)
The issue is this line:
long duration = (long) cd.get(DURATION);
Looking at the underlying SE code, it appears that the CompositeData used by Semeru and Temurin differ in structure.
- Semeru has no 'duration' key; it calculates the duration via endTime - startTime.
- Semeru uses 'index' where Temurin uses 'id'
- Semeru uses 'usageBeforeGc' where Temurin uses 'memoryUsageBeforeGc'
- Semeru uses 'usageAfterGc' where Temurin uses 'memoryUsageAfterGc'
The code needs to check for and handle both cases. If the CompositeData doesn't use either of these structures, the code should catch and debug log the exception and provide 'undefined' as the result, consistent with the overall design for how we handle this 'extended' Platform MBean API.
- is caused by
-
WFCORE-7235 [Community] platform mbeans should be evolved to expose management info for latest supported JDK
-
- Resolved
-