[jboss-jira] [JBoss JIRA] (REMJMX-105) Memory leak with http remoting jmx
Andy G (JIRA)
issues at jboss.org
Tue Feb 9 22:05:00 EST 2016
[ https://issues.jboss.org/browse/REMJMX-105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy G updated REMJMX-105:
--------------------------
Description:
We see the memory leak with the RemoteConnectionChannel.java when we try to use the JBOSS mbean server connection in web application.
We initialize the JMX connection factory as below
{code:borderStyle=solid}
try {
this.jmxConnector = JMXConnectorFactory.connect(serviceURL, auth);
if (this.jmxConnector != null) {
MBeanServerConnection mbs = this.jmxConnector.getMBeanServerConnection();
if (mbs != null) {
this.mbs = mbs;
}
}
} catch (IOException e) {
connected = false;
}
{code}
Then use mbean server connection after scheduled interval say 60 secs to read the mbeans from above mbean server connection.
{code:borderStyle=solid}
private Map<String, Object> getAttributesForMBean(ObjectName objectName, List<String> attributeNames) {
HashMap<String, Object> attributeMap = new HashMap<String, Object>();
for (String attributeName : attributeNames) {
Object attributeValue = null;
if (this.hasAttribute(objectName, attributeName)) {
try {
attributeValue = this.mbs.getAttribute(objectName, attributeName);
} catch (Exception e) {
logger.warn("In getAttributes(), for " + objectName + ": " , e);
}
}
attributeMap.put(attributeName, attributeValue);
}
return attributeMap;
}
{code}
We see that RemoteConnectionChannel keeps accumulating XnioWorkerTaskPool and leads to memory leak.
was:
We see the memory leak with the RemoteConnectionChannel.java when we try to use the JBOSS mbean server connection in web application.
We initialize the JMX connection factory as below
{code:title=Bar.java|borderStyle=solid}
try {
this.jmxConnector = JMXConnectorFactory.connect(serviceURL, auth);
if (this.jmxConnector != null) {
MBeanServerConnection mbs = this.jmxConnector.getMBeanServerConnection();
if (mbs != null) {
this.mbs = mbs;
}
}
} catch (IOException e) {
connected = false;
}
{code}
Then use mbean server connection after scheduled interval say 60 secs to read the mbeans from above mbean server connection.
private Map<String, Object> getAttributesForMBean(ObjectName objectName, List<String> attributeNames) {
HashMap<String, Object> attributeMap = new HashMap<String, Object>();
for (String attributeName : attributeNames) {
Object attributeValue = null;
if (this.hasAttribute(objectName, attributeName)) {
try {
attributeValue = this.mbs.getAttribute(objectName, attributeName);
} catch (Exception e) {
logger.warn("In getAttributes(), for " + objectName + ": " , e);
}
}
attributeMap.put(attributeName, attributeValue);
}
return attributeMap;
}
We see that RemoteConnectionChannel keeps accumulating XnioWorkerTaskPool and leads to memory leak.
> Memory leak with http remoting jmx
> ----------------------------------
>
> Key: REMJMX-105
> URL: https://issues.jboss.org/browse/REMJMX-105
> Project: Remoting JMX
> Issue Type: Bug
> Components: Connection
> Affects Versions: 2.0.1.Final
> Reporter: Andy G
> Assignee: Darran Lofthouse
> Attachments: screenshot-1.png
>
>
> We see the memory leak with the RemoteConnectionChannel.java when we try to use the JBOSS mbean server connection in web application.
> We initialize the JMX connection factory as below
> {code:borderStyle=solid}
> try {
> this.jmxConnector = JMXConnectorFactory.connect(serviceURL, auth);
> if (this.jmxConnector != null) {
>
> MBeanServerConnection mbs = this.jmxConnector.getMBeanServerConnection();
> if (mbs != null) {
> this.mbs = mbs;
> }
> }
>
> } catch (IOException e) {
> connected = false;
>
>
> }
> {code}
> Then use mbean server connection after scheduled interval say 60 secs to read the mbeans from above mbean server connection.
> {code:borderStyle=solid}
> private Map<String, Object> getAttributesForMBean(ObjectName objectName, List<String> attributeNames) {
>
> HashMap<String, Object> attributeMap = new HashMap<String, Object>();
> for (String attributeName : attributeNames) {
> Object attributeValue = null;
> if (this.hasAttribute(objectName, attributeName)) {
> try {
> attributeValue = this.mbs.getAttribute(objectName, attributeName);
> } catch (Exception e) {
> logger.warn("In getAttributes(), for " + objectName + ": " , e);
> }
> }
> attributeMap.put(attributeName, attributeValue);
> }
>
> return attributeMap;
> }
> {code}
> We see that RemoteConnectionChannel keeps accumulating XnioWorkerTaskPool and leads to memory leak.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list