Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-1382

Race in RequestBufferingHandler

    XMLWordPrintable

Details

    Description

      This started popping up in a servlet 3.1 WriteListener after the fix for https://issues.jboss.org/projects/UNDERTOW/issues/UNDERTOW-1377

      18:17:03.286 [server-worker task-1] ERROR io.undertow.request - UT005080: HttpServerExchange cannot have both async IO resumed and dispatch() called in the same cycle
      18:17:03.290 [server-worker I/O-1] ERROR net.ckozak.AsyncFileWritingReadListener - Failed to copy local stream
      java.lang.RuntimeException: java.lang.IllegalStateException: UT000146: HttpServerExchange cannot have both async IO resumed and dispatch() called in the same cycle
      	at io.undertow.servlet.spec.ServletContextImpl.invokeOnDataAvailable(ServletContextImpl.java:1011) [undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.spec.ServletInputStreamImpl$ServletInputStreamChannelListener.handleEvent(ServletInputStreamImpl.java:295) [undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.spec.ServletInputStreamImpl$ServletInputStreamChannelListener.handleEvent(ServletInputStreamImpl.java:273) [undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) [xnio-api-3.6.3.Final.jar:3.6.3.Final]
      	at io.undertow.channels.DetachableStreamSourceChannel$SetterDelegatingListener.handleEvent(DetachableStreamSourceChannel.java:231) [undertow-core-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.channels.DetachableStreamSourceChannel$SetterDelegatingListener.handleEvent(DetachableStreamSourceChannel.java:218) [undertow-core-2.0.11.Final.jar:2.0.11.Final]
      	at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) [xnio-api-3.6.3.Final.jar:3.6.3.Final]
      	at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) [xnio-api-3.6.3.Final.jar:3.6.3.Final]
      	at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) [xnio-nio-3.6.3.Final.jar:3.6.3.Final]
      	at org.xnio.nio.WorkerThread.run(WorkerThread.java:591) [xnio-nio-3.6.3.Final.jar:3.6.3.Final]
      Caused by: java.lang.IllegalStateException: UT000146: HttpServerExchange cannot have both async IO resumed and dispatch() called in the same cycle
      	at io.undertow.server.HttpServerExchange$ReadDispatchChannel.resumeReads(HttpServerExchange.java:2136) ~[undertow-core-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.spec.ServletInputStreamImpl.isReady(ServletInputStreamImpl.java:104) ~[undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at net.ckozak.AsyncFileWritingReadListener.onDataAvailable(AsyncFileWritingReadListener.java:89)
      	at io.undertow.servlet.spec.ServletContextImpl$3.call(ServletContextImpl.java:188) ~[undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.spec.ServletContextImpl$3.call(ServletContextImpl.java:185) ~[undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	at io.undertow.servlet.spec.ServletContextImpl.invokeOnDataAvailable(ServletContextImpl.java:1009) ~[undertow-servlet-2.0.11.Final.jar:2.0.11.Final]
      	... 9 more
      

      Attachments

        Activity

          People

            sdouglas1@redhat.com Stuart Douglas
            carterkozak Carter Kozak
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: