* Fixes#6208 - HTTP/2 max local stream count exceeded
Backported from Jetty 10 the "new stream" event so that the Stream can be set early on the client's `HttpChannelOverHTTP2`.
In this way, when a HEADERS frame stalled due to TCP congestion is failed, the corresponding Stream is closed and the connection released to the pool, fixing the "max stream exceeded" issue.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
This is important in tests that check that streams have been removed from sessions after counting down a latch in the notification.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Fixed initial session recv window update: it was wrong if the initial value was less than the default value (65535).
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Fixed logic in onShutdown(): in case of abort the closing action must be
run as callback, so it executes at the end of all the other callbacks.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Reimplemented close/idle_timeout/stop/onGoAway/input_shutdown following more closely the specification.
In particular, the semantic of sending a GOAWAY is now to:
* stop creation of new both local and remote streams
* record the last processed stream
* continue processing streams that are pending
This means that a GOAWAY is "graceful" in the sense that it allows for streams to be completed by applications.
The semantic of stop() and idle timeout is harsher: for pending streams a RST_STREAM is sent to the other peer and they are failed locally.
Added support for GOAWAY with 2^31-1 lastStreamId.
Added support for a peer to send and receive multiple GOAWAY frames.
Reviewed the stream creation/destruction mechanism so that when the last stream completes after a GOAWAY, proper actions can be run to tear down the connection.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* use our fork of h2spec-maven-plugin and upgrade version
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* add a profile to run spec server
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* use h2spec plugin new version
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* version h2spec 1.0.0
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* exclude specs we know not working
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* use our own package name
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* test no exclusion
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* restore known failure
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* h2spec maven plugin version 1.0.0
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* change default port for manual testing
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>