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

Undertow produces malformed Http/1.1 responses under heavy concurrent load

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.3.16.Final, 2.2.35.Final
    • 2.2.25.Final, 2.3.7.Final, 2.2.34.Final, 2.3.16.Final
    • Core
    • None

      This is a follow-up to create a ticket for the reproducer posted here: https://github.com/undertow-io/undertow/pull/1495

      This may manifest in several ways:

      org.apache.hc.core5.http.ConnectionClosedException:
      Premature end of chunk coded message body: closing chunk expected
      
      Caused by: org.apache.hc.core5.http.ConnectionClosedException: Premature end of chunk coded message body: closing chunk expected
          at org.apache.hc.core5.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:263)
          at org.apache.hc.core5.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:222)
          at org.apache.hc.core5.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:183)
          at org.apache.hc.core5.http.io.EofSensorInputStream.read(EofSensorInputStream.java:135)
          at java.base/java.io.FilterInputStream.read(FilterInputStream.java:132)
      
      org.apache.hc.core5.http.MessageConstraintException: Maximum empty line limit exceeded
          at org.apache.hc.core5.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
          at org.apache.hc.core5.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:54)
          at org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:299)
          at com.palantir.dialogue.hc5.InstrumentedManagedHttpClientConnection.receiveResponseHeader(InstrumentedManagedHttpClientConnection.java:95)
          at org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:175)
          at org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:218)
          at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$InternalConnectionEndpoint.execute(PoolingHttpClientConnectionManager.java:712
      
      DEBUG [2023-06-20T17:53:27.665476Z] [witchcraft-worker task-17] io.undertow.request.io: UT005013: An IOException occurred
      java.nio.channels.ClosedChannelException:
          at io.undertow.channels.DetachableStreamSinkChannel.awaitWritable(DetachableStreamSinkChannel.java:85)
          at io.undertow.server.HttpServerExchange$WriteDispatchChannel.awaitWritable(HttpServerExchange.java:2139)
          at org.xnio.channels.Channels.flushBlocking(Channels.java:64)
          at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:641)
          at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:485)
          at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:580)
          at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:335)
          at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
          at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
          at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
          at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
          at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
          at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101)
          at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
          at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
      

            flaviarnn Flavia Rainone
            carterkozak Carter Kozak (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: