1475 Commits

Author SHA1 Message Date
Lachlan Roberts
6ad6dea1a2 fix test case
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-05-02 21:23:59 +10:00
Lachlan Roberts
c2d2c1eadb Issue #9554 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-05-01 19:23:57 +10:00
Lachlan Roberts
1ee79f548c Issue #9554 - additional cleanups and testing
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-05-01 12:12:15 +10:00
Lachlan Roberts
fa32199559 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-9554-qpack-hpack 2023-04-28 16:25:34 +10:00
Lachlan Roberts
a7b0b727dd Issue #9554 - add javadoc for huffman / n-bit integer classes and remove static decode methods
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-04-18 15:24:59 +10:00
Lachlan Roberts
09e6e6b211 Issue #9554 - add javadoc for illegal vchar methods and move to HttpTokens
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-04-18 10:46:29 +10:00
Lachlan Roberts
c3b6b47915 Use ISO-8859-1 for encoding/decoding in huffman/hpack/qpack
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-04-17 17:11:14 +10:00
Lachlan Roberts
b6d89af3ea Issue #9554 - fix test expectations for hpack
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-04-12 15:36:54 +10:00
Joakim Erdfelt
ca3c1756ad
Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
Joakim Erdfelt
68017dbd00
Updating to version 10.0.15 2023-04-11 12:24:32 -05:00
Lachlan Roberts
ebec7d2ea3 Issue #9554 - move common hpack/qpack code to jetty-http
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-04-11 16:51:37 +10:00
Olivier Lamy
e62cc0344a Updating to version 10.0.15-SNAPSHOT 2023-03-01 18:55:10 +10:00
gregw
7a7d69a69f Happy no year
Remove modification date from copyright notice and instead just have the
project inception year.

Signed-off-by: gregw <gregw@webtide.com>
2023-02-15 15:22:32 +11:00
dependabot[bot]
ca19b143a9
Bump maven.surefire.plugin.version from 3.0.0-M5 to 3.0.0-M8 (#9255) 2023-02-02 04:15:39 +00:00
Joakim Erdfelt
54c4c03244
Updating to version 10.0.14-SNAPSHOT 2022-12-07 14:33:17 -06:00
Joakim Erdfelt
1c2636ea05
Updating to version 10.0.13 2022-12-07 14:12:50 -06:00
Simone Bordet
7c757689a2
Fixes #9009 - Flaky test StreamCloseTest.testRequestDataClosedResponseDataClosedClosesStream.
Regression introduced by #8678.
Now using awaitility to wait for the stream count to go to zero.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-06 15:48:36 +01:00
Simone Bordet
df265e0abb
Fixes #8678 - Jetty client receives GO_AWAY and continue to send traffic on same connection (#8891)
* Fixes #8678 - Jetty client receives GO_AWAY and continue to send traffic on same connection

* Now upon receiving the GOAWAY, the connection is removed from the pool, so it cannot be used by new requests.
* HTTP2Session.removeStream() now happens _after_ notifying HEADERS and DATA events, although the Stream state change still happens before.
This is necessary to avoid that a "close" event is notified before a "headers" or "data" event.

With these changes, the race window of a client acquiring a connection while the server is closing it is reduced, but it is impossible to close it completely.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-11-14 15:25:25 +01:00
Simone Bordet
f21fa6e6e9
Fixed flakyness of GracefulShutdownTest by explicitly setting the Connector shutdownIdleTimeout to a large value that does not interfere with the tests.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-11-09 12:13:27 +01:00
Joakim Erdfelt
cf7353f274
Jetty 10 - Improve test reliability (#8868)
* Don't care about stop failures in this test
* More consistent ConnectTimeoutTest
 + using IANA example.com (as it will route to a
   real machine, and will never have this
   specific port open)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-11-07 16:16:25 -06:00
Simone Bordet
cd737489f9 Fixes #8811 - HTTP/2 session shutdown race may cause Server.stop() to block until stop timeout.
Now a completed future is returned from shutdown() if the session is already closed.

Moved the notification of the CompletableFuture to terminate(), which is always invoked.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-11-07 18:43:34 +01:00
Simone Bordet
bff5b3eb8f
Code cleanup.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-11-03 21:56:38 +01:00
Gili Tzabari
e2e59478ce Update in response to PR comments. 2022-10-24 13:17:25 -04:00
Olivier Lamy
dbd07146ec
merge back release branch to bump version to 10.0.13-SNAPSHOT (#8593)
* Updating to version 10.0.12

* Updating to version 10.0.13-SNAPSHOT

* VERSION.TXT =+ content of jetty-9.4.49.v20220914 release

* remove strange line and reorder
2022-09-16 19:50:12 +10:00
Simone Bordet
dab4fe60d3
Fixes #8558 - Idle timeout occurs on HTTP/2 with InputStreamResponseL… (#8585)
* Fixes #8558 - Idle timeout occurs on HTTP/2 with InputStreamResponseListener.

The issue was that HttpReceiverOverHTTP2.ContentNotifier.offer() was racy,
as a network thread could have offered a DATA frame, but not yet called
process() -- yet an application thread could have stolen the DATA frame
completed the response and started another response, causing the network
thread to interact with the wrong response.

The implementation has been changed so that HttpReceiverOverHTTP2.ContentNotifier
does not have a queue anymore and it demands DATA frames to the Stream
only when the application demands more -- a simpler model that just forwards
the demand.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-09-15 10:18:36 +02:00
Simone Bordet
77ad0189ba
Fixes #8532 - Review System.nanoTime() usages. (#8535)
* Fixes #8532 - Review System.nanoTime() usages.

Introduced o.e.j.util.NanoTime class to deal with nanoTimes.

Now NanoTime.now() should be used instead of System.nanoTime(),
and various <unit>[elapsed|since|until]() methods to calculate nanoTimes.

Furthermore, comparing 2 nanoTimes should be done via isBefore(),
rather than using the < operator, which is wrong as specified in
the System.nanoTime() javadocs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-09-06 09:30:02 +02:00
Greg Wilkins
2b817f06c6
Combined ByteBufferPool (#8171)
All `ByteBufferPool` can now be accessed as `RetainableByteBufferPools`.

Users now need to configure only a single buffer pool and there is just the additional retained parameter that needs consideration.
Default buffer pool has been changed to logarithmic, but we may wish to review that before next release.
Default factor size has been increased to 4096.
2022-07-04 10:38:30 +10:00
Lachlan
8e0ccad495
Merge pull request #8176 from eclipse/jetty-10.0.x-8170-WebSocketHttp2Close
Issue #8170 - fix WebSocket close over HTTP/2
2022-06-29 17:12:12 +10:00
Joakim Erdfelt
64d12e2a5a
Merge Release 10.0.11 back into jetty-10.0.x branch (#8194)
* Updating to version 10.0.11

* Updating to version 10.0.12-SNAPSHOT
2022-06-22 16:24:48 -05:00
Joakim Erdfelt
c2bc103cb9
Merge Release 10.0.10 back into jetty-10.0.x (#8180)
* Updating to version 10.0.11-SNAPSHOT
2022-06-21 14:41:41 +02:00
Lachlan
1faa06179a
Issue #8170 - only fail stream if connection onIdleExpired returns true
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2022-06-17 17:56:17 +10:00
Lachlan Roberts
e4b0db8666 Issue #8170 - fix WebSocket close over HTTP/2
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-06-17 15:28:16 +10:00
Greg Wilkins
7a1c165677
Implement #8057 103 Early Hint (#8058)
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2022-06-01 11:56:54 +10:00
Simone Bordet
b705091afb
Fixes #7935 - Review HTTP/2 error handling (#7938)
* Fixes #7935 - Review HTTP/2 error handling

Now returning error handling code as a Runnable.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-05-11 10:28:18 -05:00
Joakim Erdfelt
16420f0181
Set version to 10.0.10-SNAPSHOT (#7823)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-04-03 20:33:44 +10:00
Joakim Erdfelt
f079949a35
Merge Release 10.0.9 (#7821)
* Updating to version 10.0.9

* Updating to version 10.0.10
2022-04-02 08:43:44 -05:00
Simone Bordet
a4fda96f49
Updating to version 10.0.9-SNAPSHOT 2022-02-07 12:02:02 +01:00
Simone Bordet
716c7afd8e
Updating to version 10.0.8 2022-02-07 11:34:12 +01:00
Joakim Erdfelt
cb127793e5
Happy New Year 2022 (#7459)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-01-27 10:42:30 -06:00
mszabo-wikia
fd2407c72f
Clarify that requestHeaderSize is a cumulative limit (#7417)
* Clarify that requestHeaderSize is a cumulative limit

HttpConfiguration documents the requestHeaderSize configuration option
as being a limit on the size of a single request header, but it is in
fact a limit on the cumulative size of all request headers as well as
the request URI. This patch updates the documentation accordingly, and
adds test cases for the HTTP/1.x and HTTP/2 parsers to verify the
behavior.

NB.: the HTTP/3 parser and configuration seem to correctly document this
option as being a global limit on header size.

* Improve requestHeaderSize tests and documentation per review

Signed-off-by: Máté Szabó <mszabo@wikia-inc.com>
2022-01-19 11:56:27 -06:00
Simone Bordet
0ac6718b35
Fixes #7209 - Flaky test GoAwayTest.testServerGoAwayWithStalledStreamServerConsumesDataOfInFlightStream()
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 0fb733f32ad6b08ccceb5d5c0e01df2c95d44d37)
2022-01-13 13:18:57 +01:00
Simone Bordet
3042f2b2bf
Fixes #7348 - Slow CONNECT request causes NPE (#7349) (#7352)
* Fixes #7348 - Slow CONNECT request causes NPE (#7349)

Added NPE guard in `HttpReceiverOverHTTP.onUpgradeFrom()`.
Expanded logic in `HttpReceiverOverHTTP.parse()` to return true in case of CONNECT + 200.

Fixed `ProxyConnection.toConnectionString()` to avoid NPEs.

Fixed `HttpClientTest.testCONNECTWithHTTP10()` logic
after changes to fix this issue.

Now a tunneled connection is not put back into the connection pool,
and if applications explicitly want to use it, they must re-enable
fill interest, similarly to what should be done after upgrade+101.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 5eb7b70df7d1e25ffb4ce267126c122f94c181fd)
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-01-06 11:08:12 +01:00
Simone Bordet
40aba07e33 Issue #6728 - QUIC and HTTP/3
- More work on making HTTP semantic layer work on top of HTTP/3.
- Various fixes and improvement to HTTP client transport tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
0b5241df6b Issue #6728 - QUIC and HTTP/3
- WIP on the client upper layer.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
4b6bcca529 get rid of promoteSession()
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
08724d8e70 #7157 add missing callback calls in H2 reset codepath 2021-11-25 10:35:30 +01:00
Ludovic Orban
f048f4dd95 #7107: handle review comments 2021-11-22 09:48:25 +01:00
Ludovic Orban
ad6434ba34 #7107: move new test into existing test class 2021-11-22 09:48:25 +01:00
Ludovic Orban
3c019fabd3 #7107: fix too-eager closing of multiplexed connections marked as closed but still in use 2021-11-22 09:48:25 +01:00
Joakim Erdfelt
cfc67f86d2 Updating to version 10.0.8-SNAPSHOT 2021-10-06 14:51:32 -05:00