Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-27982

[QE](7.4.z) Undertow HTTP2 breaks protocol specification in RST_STREAM scenarios

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • 7.4.20.GA
    • 7.4.19.CR1
    • Undertow
    • None
    • False
    • None
    • False
    • +
    • +
    • Hide
      1. Download latest version of the h2spec TS - https://github.com/summerwind/h2spec/releases/tag/v2.6.0
      2. extract it
      3. start the server with default configuration ./bin/standalone.sh
      4. start the TS: ./h2spec -h localhost -t -k -p 8443 http2/5
      Show
      Download latest version of the h2spec TS - https://github.com/summerwind/h2spec/releases/tag/v2.6.0 extract it start the server with default configuration ./bin/standalone.sh start the TS: ./h2spec -h localhost -t -k -p 8443 http2/5

      With EAP 8.0 Update 3.1 we can see failures of 2 tests in the h2spec TS we use to check that the server behaves according to the HTTP2 protocol standard.

      Here are the failing tests:

      Hypertext Transfer Protocol Version 2 (HTTP/2)
        5. Streams and Multiplexing
          5.1. Stream States
            ...
            using source address 127.0.0.1:35384r sending RST_STREAM frame
            × 8: closed: Sends a DATA frame after sending RST_STREAM frame
              -> The endpoint MUST treat this as a stream error of type STREAM_CLOSED.
                 Expected: GOAWAY Frame (Error Code: STREAM_CLOSED)
                           RST_STREAM Frame (Error Code: STREAM_CLOSED)
                           Connection closed
                   Actual: Timeout
            using source address 127.0.0.1:35386fter sending RST_STREAM frame
            × 9: closed: Sends a HEADERS frame after sending RST_STREAM frame
              -> The endpoint MUST treat this as a stream error of type STREAM_CLOSED.
                 Expected: GOAWAY Frame (Error Code: STREAM_CLOSED)
                           RST_STREAM Frame (Error Code: STREAM_CLOSED)
                           Connection closed
                   Actual: Timeout
      
      

      The tests send a RST_STREAM frame and then continue with DATA/HEADERS and expect the server to respond with a GOAWAY. But it never does and the connection just times out instead.

      This seems to be brought in by the changes from UNDERTOW-2343

            flaviarnn Flavia Rainone
            pmackay@redhat.com Peter Mackay
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: