Commit Graph

1061 Commits

Author SHA1 Message Date
Simone Bordet 2f19c67b41
Fixes #6208 - HTTP/2 max local stream count exceeded (#6220)
* 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>
2021-04-29 09:30:23 +02:00
Joakim Erdfelt 241ca2c2a0 Updating to version 9.4.41-SNAPSHOT 2021-04-13 16:24:42 -05:00
Joakim Erdfelt b881a57266 Updating to version 9.4.40.v20210413 2021-04-13 15:32:28 -05:00
Jesse McConnell d23925809d
Updating to version 9.4.40-SNAPSHOT 2021-03-25 10:06:56 -05:00
Jesse McConnell ee95f92d70
Updating to version 9.4.39.v20210325 2021-03-25 09:33:14 -05:00
Jesse McConnell 7dacf1503f
reset release to 9.4.39-SNAPSHOT 2021-03-25 09:03:35 -05:00
Jesse McConnell be786489a8
reset release to 9.4.39-SNAPSHOT 2021-03-25 08:52:25 -05:00
Olivier Lamy e0111e581a Updating to version 9.4.40-SNAPSHOT 2021-03-25 03:39:19 +00:00
Olivier Lamy e56edccd03 Updating to version 9.4.39.v20210325 2021-03-25 03:20:25 +00:00
Joakim Erdfelt 5fed958e08 Updating to version 9.4.39-SNAPSHOT 2021-02-24 14:52:43 -06:00
Joakim Erdfelt 288f3cc745 Updating to version 9.4.38.v20210224 2021-02-24 14:16:09 -06:00
Joakim Erdfelt ea2a76ed3b Updating to version 9.4.38-SNAPSHOT 2021-02-19 09:44:28 -06:00
Joakim Erdfelt 27afab2bd3 Updating to version 9.4.37.v20210219 2021-02-19 09:03:57 -06:00
Joakim Erdfelt 176e29e408
Happy New Year 2021
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-01-21 12:31:00 -06:00
Joakim Erdfelt 2e53ec5384 Updating to version 9.4.37-SNAPSHOT 2021-01-14 11:27:24 -06:00
Joakim Erdfelt 238ec6997c Updating to version 9.4.36.v20210114 2021-01-14 10:29:28 -06:00
Ludovic Orban 0dec883fda implement connection pool max duration 2021-01-12 15:41:56 +01:00
Simone Bordet 4c11c3c56d Fixes #5755 - Cannot configure maxDynamicTableSize on HTTP2Client.
Introduced `HTTP2Client.maxDynamicTableSize` and `HTTP2Client.maxHeaderBlockFragment`.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-12-05 11:50:55 +01:00
Simone Bordet eb00ac2dde Restored first-close-and-remove-then-notify ordering that was changed with the changes for #5310.
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>
2020-12-01 12:55:23 +01:00
Ludovic Orban df3a32601a reduce test load on jenkins
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-11-30 18:36:00 +01:00
Simone Bordet 68e70b47de
Merge pull request #5634 from eclipse/jetty-9.4.x-5310-http2_goaway
Review HTTP/2 GOAWAY handling
2020-11-26 11:29:44 +01:00
Joakim Erdfelt e8683cba9f Updating to version 9.4.36-SNAPSHOT 2020-11-20 16:05:27 -06:00
Joakim Erdfelt bdc54f03a5 Updating to version 9.4.35.v20201120 2020-11-20 15:05:50 -06:00
Simone Bordet 4093af1824 Issue 5310 - Review HTTP/2 GOAWAY handling.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-18 12:03:35 +01:00
Simone Bordet 1d71cabef4 Fixed test that was failing due to TLS 1.3 backport to Java 8.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-17 13:39:28 +01:00
Simone Bordet dd9bdc7ac3 Fixes #5633 - Allow to configure HttpClient request authority.
Updated after review.
Added more tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-12 17:13:36 +01:00
Simone Bordet 96e4b38624 Fixes #5633 - Allow to configure HttpClient request authority.
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>
2020-11-12 17:13:17 +01:00
Simone Bordet 298ddfd722 Issue 5310 - Review HTTP/2 GOAWAY handling.
Fixed javadocs and TODOs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-10 17:38:05 +01:00
Simone Bordet a02012fb3e Issue 5310 - Review HTTP/2 GOAWAY handling.
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>
2020-11-10 16:17:32 +01:00
Simone Bordet 1de622f72f Issue 5310 - Review HTTP/2 GOAWAY handling.
Updates after initial review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-10 15:25:44 +01:00
Simone Bordet 226d616a8a Issue 5310 - Review HTTP/2 GOAWAY handling.
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>
2020-11-10 10:07:19 +01:00
Simone Bordet 044052d717 Issue 5310 - Review HTTP/2 GOAWAY handling.
Code cleanups: removed unnecessary final modifiers and fixed code warnings.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-10 09:56:33 +01:00
Simone Bordet 206050df7f Issue 5310 - Review HTTP/2 GOAWAY handling.
Refactored push code in a single place: HTTP2Session.push().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-10 09:56:32 +01:00
Simone Bordet 0dc2894002 Issue 5310 - Review HTTP/2 GOAWAY handling.
Refactored reset code in a single place: HTTP2Session.reset().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-10 09:56:32 +01:00
Simone Bordet 62e17da2d0 Issue 5310 - Review HTTP/2 GOAWAY handling.
Moved stream "close" event after returning from listener methods.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-10 09:56:32 +01:00
Joakim Erdfelt edaadff55b Updating to version 9.4.35-SNAPSHOT 2020-11-02 09:04:51 -06:00
Joakim Erdfelt e46af88704 Updating to version 9.4.34.v20201102 2020-11-02 08:03:51 -06:00
Olivier Lamy 47885f7ecb
Jetty 9.4.x h2spec-maven-plugin now check if docker is available (new version fixing issues with generated junit file) (#5497)
* skip h2spec if no docker available

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* active snapshot-repositories for jenkins build

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* h2spec plugin 1.0.1

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* new snapshot to debug jenkins

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* simplify build to ease debug

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* force snapshot download:

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* use h2spec release 1.0.2

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* remove commented sections

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* no need of this profile

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* profile not needed anymore

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-10-28 12:07:49 +10:00
Joakim Erdfelt e726eefb0b Updating to version 9.4.34-SNAPSHOT 2020-10-20 18:55:39 -05:00
Joakim Erdfelt 1be6875565 Updating to version 9.4.33.v20201020 2020-10-20 18:28:51 -05:00
Simone Bordet 8de2fbce49 Code cleanup, merging streams[Opened|Closed] from subclasses into HTTP2Session.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-10-18 13:01:40 +02:00
Joakim Erdfelt e6fb4c3ac4 More fixes to allow project to build on Windows 10 2020-10-16 16:45:25 -05:00
Joakim Erdfelt 07d35d32ae Fixing windows build/test issues. 2020-10-16 15:39:38 -05:00
Simone Bordet c73ad40511 Code cleanup.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-10-15 15:41:57 +02:00
Joakim Erdfelt 85e257fc98 Updating to version 9.4.33-SNAPSHOT 2020-09-30 11:53:09 -05:00
Joakim Erdfelt de97d26f7b Updating to version 9.4.32.v20200930 2020-09-30 11:03:24 -05:00
Ludovic Orban a37ab389aa
increase the connector's idle timeout to make sure the idle timeout does not fire spuriously. (#5281)
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-09-16 16:14:11 +02:00
Olivier Lamy 3849a9118f
h2s spec maven plugin 1.0.0 with h2spec 2.6.0 (#5231)
* 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>
2020-09-14 21:01:10 +10:00
Simone Bordet 892a715bea Small javadocs fixes.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-10 13:35:06 +02:00
Simone Bordet f81bf7f945
Fixes #3766 - Introduce HTTP/2 API to batch frames. (#5222)
* Fixes #3766 - Introduce HTTP/2 API to batch frames.

Introduced Stream.FrameList to hold HEADERS+DATA+HEADERS frames.
These are often used by the client and by the server when the
request/response content is known and FrameList will allow to
send them in a single TCP write, rather than multiple ones.

Rewritten HttpSenderOverHTTP2.sendHeaders() and
HttpTransportOverHTTP2.sendHeaders() to take advantage of
FrameList.

Now using ConcurrentHashMap as a client context, because
with DEBUG logging enabled it may be access concurrently.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-10 10:13:14 +02:00