StackOverflowError in netty DefaultChannelFuture

Kevin Burton burtonator at gmail.com
Thu Oct 27 03:15:01 EDT 2011


I'm trying to track down this bug... I'm SO close to having this code
working and it's been executing more and more jobs but now on larger jobs
I'm getting this exception.

It *seems* that notifyNow is being called right away on the writable.

I looked into this a bit more and it was because the channel was no longer
connected.

You can see the stack trace below.

I added

            if ( channel.isConnected() == false )
                return; // the close future will handle proper shutdown.

I thought that my closeFuture would have been handling this but perhaps
there was a race?

Anyway.  This seems like the WRONG way to re-raise the event.  Perhaps if
the same object has been called 2x just punt?



2011-10-27 05:46:22,135  WARN [New I/O client worker #1-15]
org.jboss.netty.channel.DefaultChannelFuture An exception was thrown by
ChannelFutureListener.
java.lang.StackOverflowError
    at java.util.Vector.ensureCapacityHelper(Vector.java:218)
    at java.util.Vector.addElement(Vector.java:573)
    at java.lang.ClassLoader.addClass(ClassLoader.java:166)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:159)
    at org.apache.log4j.Category.forcedLog(Category.java:391)
    at org.apache.log4j.Category.warn(Category.java:1060)
    at org.jboss.netty.logging.Log4JLogger.warn(Log4JLogger.java:83)
    at
org.jboss.netty.logging.InternalLoggerFactory$1.warn(InternalLoggerFactory.java:133)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:383)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
    at
peregrine.pfs.RemoteChunkWriterClient$WriteFutureListener.operationComplete(RemoteChunkWriterClient.java:407)
    at
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
    at
org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:148)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/netty-users/attachments/20111027/5d11844c/attachment-0001.html 


More information about the netty-users mailing list