[jboss-jira] [JBoss JIRA] (WFLY-3834) Memory leak in org.xnio.ByteBufferSlicePool
Stuart Douglas (JIRA)
issues at jboss.org
Wed Sep 10 02:58:19 EDT 2014
[ https://issues.jboss.org/browse/WFLY-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13000657#comment-13000657 ]
Stuart Douglas edited comment on WFLY-3834 at 9/10/14 2:58 AM:
---------------------------------------------------------------
I added some tracing into XNIO, and this is the stack trace that results in the leak:
{code}
6:54:30,281 INFO [stdout] (Finalizer) BUFFER LEAK
16:54:30,533 ERROR [stderr] (Finalizer) java.lang.Throwable
16:54:30,533 ERROR [stderr] (Finalizer) at org.xnio.ByteBufferSlicePool$PooledByteBuffer.<init>(ByteBufferSlicePool.java:184)
16:54:30,533 ERROR [stderr] (Finalizer) at org.xnio.ByteBufferSlicePool.allocate(ByteBufferSlicePool.java:135)
16:54:30,533 ERROR [stderr] (Finalizer) at org.jboss.remoting3.remote.RemoteConnection.allocate(RemoteConnection.java:75)
16:54:30,533 ERROR [stderr] (Finalizer) at org.jboss.remoting3.remote.RemoteReadListener.handleEvent(RemoteReadListener.java:70)
16:54:30,533 ERROR [stderr] (Finalizer) at org.jboss.remoting3.remote.RemoteReadListener.handleEvent(RemoteReadListener.java:45)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:199)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:113)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners$DelegatingChannelListener.handleEvent(ChannelListeners.java:1092)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:87)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.nio.WorkerThread.run(WorkerThread.java:539)
{code}
was (Author: swd847):
I added some tracing into XNIO, and this is the stack trace that results in the leak:
6:54:30,281 INFO [stdout] (Finalizer) BUFFER LEAK
16:54:30,533 ERROR [stderr] (Finalizer) java.lang.Throwable
16:54:30,533 ERROR [stderr] (Finalizer) at org.xnio.ByteBufferSlicePool$PooledByteBuffer.<init>(ByteBufferSlicePool.java:184)
16:54:30,533 ERROR [stderr] (Finalizer) at org.xnio.ByteBufferSlicePool.allocate(ByteBufferSlicePool.java:135)
16:54:30,533 ERROR [stderr] (Finalizer) at org.jboss.remoting3.remote.RemoteConnection.allocate(RemoteConnection.java:75)
16:54:30,533 ERROR [stderr] (Finalizer) at org.jboss.remoting3.remote.RemoteReadListener.handleEvent(RemoteReadListener.java:70)
16:54:30,533 ERROR [stderr] (Finalizer) at org.jboss.remoting3.remote.RemoteReadListener.handleEvent(RemoteReadListener.java:45)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:199)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:113)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners$DelegatingChannelListener.handleEvent(ChannelListeners.java:1092)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:87)
16:54:30,534 ERROR [stderr] (Finalizer) at org.xnio.nio.WorkerThread.run(WorkerThread.java:539)
> Memory leak in org.xnio.ByteBufferSlicePool
> -------------------------------------------
>
> Key: WFLY-3834
> URL: https://issues.jboss.org/browse/WFLY-3834
> Project: WildFly
> Issue Type: Bug
> Components: Domain Management
> Affects Versions: 8.1.0.Final
> Reporter: Sergey Lisovoy
> Labels: memory_leak, memoryleak
>
> I have a simple thread that monitor remote wildfly process status. After some time it fail with OutOfMemory exception.
> I wrote simple exsample how to reproduce its error:
> {code:java}
> package ru.kamis.tests.xniomemoryleaks;
> import org.jboss.as.controller.client.ModelControllerClient;
> import org.jboss.as.controller.client.helpers.Operations;
> import org.jboss.dmr.ModelNode;
> public class OutOfMemoryDemo {
> public static void main(String[] args) throws Exception {
>
> for(int i=0; i<1000000; i++) {
> ModelControllerClient client = null;
> client = ModelControllerClient.Factory.create("localhost", 9990);
>
> ModelNode operation = Operations.createReadAttributeOperation(new ModelNode().setEmptyList(), "server-state");
> client.execute(operation);
>
> client.close();
>
> if(i % 1000 == 0) {
> System.out.println("Processed: " + i);
> }
> }
> }
> }
> {code}
> Program produces folowing output:
> {noformat}
> сен 09, 2014 2:33:20 PM org.xnio.Xnio <clinit>
> INFO: XNIO version 3.2.2.Final
> сен 09, 2014 2:33:20 PM org.xnio.nio.NioXnio <clinit>
> INFO: XNIO NIO Implementation Version 3.2.2.Final
> сен 09, 2014 2:33:20 PM org.jboss.remoting3.EndpointImpl <clinit>
> INFO: JBoss Remoting version 4.0.3.Final
> Processed: 0
> Processed: 1000
> Processed: 2000
> Processed: 3000
> Processed: 4000
> Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
> at java.lang.String.toCharArray(String.java:2746)
> at sun.net.www.ParseUtil.encodePath(ParseUtil.java:107)
> at sun.misc.URLClassPath$JarLoader.checkResource(URLClassPath.java:757)
> at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:842)
> at sun.misc.URLClassPath.getResource(URLClassPath.java:199)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:358)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.jboss.as.protocol.ProtocolConnectionUtils.connectSync(ProtocolConnectionUtils.java:119)
> at org.jboss.as.protocol.ProtocolConnectionManager$EstablishingConnection.connect(ProtocolConnectionManager.java:256)
> at org.jboss.as.protocol.ProtocolConnectionManager.connect(ProtocolConnectionManager.java:70)
> at org.jboss.as.protocol.mgmt.FutureManagementChannel$Establishing.getChannel(FutureManagementChannel.java:204)
> at org.jboss.as.controller.client.impl.RemotingModelControllerClient.getOrCreateChannel(RemotingModelControllerClient.java:148)
> at org.jboss.as.controller.client.impl.RemotingModelControllerClient$1.getChannel(RemotingModelControllerClient.java:67)
> at org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:117)
> at org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:92)
> at org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeRequest(AbstractModelControllerClient.java:236)
> at org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:141)
> at org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeForResult(AbstractModelControllerClient.java:127)
> at org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:71)
> at ru.kamis.tests.xniomemoryleaks.OutOfMemoryDemo.main(OutOfMemoryDemo.java:15)
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> сен 09, 2014 2:35:20 PM org.jboss.as.controller.client.impl.RemotingModelControllerClient finalize
> WARN: JBAS010600: Closing leaked controller client
> JBAS010649: Allocation stack trace:
> at java.lang.Thread.getStackTrace(Thread.java:1589)
> at org.jboss.as.controller.client.impl.RemotingModelControllerClient.<init>(RemotingModelControllerClient.java:76)
> at org.jboss.as.controller.client.ModelControllerClient$Factory.create(ModelControllerClient.java:353)
> at org.jboss.as.controller.client.ModelControllerClient$Factory.create(ModelControllerClient.java:200)
> at ru.kamis.tests.xniomemoryleaks.OutOfMemoryDemo.main(OutOfMemoryDemo.java:12)
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
> {noformat}
> Used libraries:
> {code:xml}
> <dependency>
> <groupId>org.wildfly</groupId>
> <artifactId>wildfly-controller-client</artifactId>
> <version>8.1.0.Final</version>
> </dependency>
> {code}
> The same bug is reproduced on other xnio versions: 3.2.3.Final, 3.3.0.Beta2
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
More information about the jboss-jira
mailing list