Looks like it is an exception that can occur when a server is being
shut down. The close listener attempts to queue a task in the IO
thread, but it is rejected because of the shutdown. It then executes
it directly in the current thread, which results in another attempted
dispatch.
I have created:
https://issues.jboss.org/browse/UNDERTOW-791
Should be an easy fix, and should not actually cause any issues
because the server is being shut down anyway (at worst you might miss
an OnClose notification).
Stuart
On Wed, Aug 3, 2016 at 12:34 PM, electrotype <electrotype(a)gmail.com> wrote:
Hi,
Using Undertow 1.3.23.Final, I sometimes get this error, when running my
WebSocket tests :
------------------------------------------
2016-08-02 21:56:15 [ERROR] XNIO001007: A channel event listener threw an
exception ~ Caller+0 at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:94)
java.lang.StackOverflowError: null
at
ch.qos.logback.classic.pattern.ThrowableProxyConverter.subjoinSTEPArray(ThrowableProxyConverter.java:197)
at
ch.qos.logback.classic.pattern.ThrowableProxyConverter.recursiveAppend(ThrowableProxyConverter.java:161)
at
ch.qos.logback.classic.pattern.ThrowableProxyConverter.throwableProxyToString(ThrowableProxyConverter.java:151)
at
ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(ThrowableProxyConverter.java:145)
at
ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(ThrowableProxyConverter.java:1)
at
ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36)
at
ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:114)
at
ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:141)
at
ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:1)
at
ch.qos.logback.core.encoder.LayoutWrappingEncoder.doEncode(LayoutWrappingEncoder.java:130)
at
ch.qos.logback.core.OutputStreamAppender.writeOut(OutputStreamAppender.java:187)
at
ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:212)
at
ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:100)
at
ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
at
ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)
at
ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
at
ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
at ch.qos.logback.classic.Logger.log(Logger.java:765)
at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.jboss.logging.Slf4jLocationAwareLogger.doLog(Slf4jLocationAwareLogger.java:89)
at
org.jboss.logging.Slf4jLocationAwareLogger.doLogf(Slf4jLocationAwareLogger.java:82)
at org.jboss.logging.Logger.logf(Logger.java:2445)
at
org.xnio._private.Messages_$logger.listenerException(Messages_$logger.java:923)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:94)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.run(AbstractFramedChannel.java:981)
at
io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread(AbstractFramedChannel.java:235)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:978)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:937)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.run(AbstractFramedChannel.java:981)
at
io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread(AbstractFramedChannel.java:235)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:978)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:937)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.run(AbstractFramedChannel.java:981)
at
io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread(AbstractFramedChannel.java:235)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:978)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:937)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.run(AbstractFramedChannel.java:981)
at
io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread(AbstractFramedChannel.java:235)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:978)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:937)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.run(AbstractFramedChannel.java:981)
at
io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread(AbstractFramedChannel.java:235)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:978)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:937)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
...
------------------------------------------
The
------------------------------------------
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.run(AbstractFramedChannel.java:981)
at
io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread(AbstractFramedChannel.java:235)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:978)
at
io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent(AbstractFramedChannel.java:937)
at
org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
------------------------------------------
part is repeated a lot of times before a stack overflow is reached.
I'm currently not able to reproduce the error on demand, most of the time it
works just fine. I'm still investigating.
I'd like to know if someone has already seen this? Any potential causes you
may think of?
Thanks,
Julien
_______________________________________________
undertow-dev mailing list
undertow-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/undertow-dev