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