1443 Commits

Author SHA1 Message Date
Simone Bordet
e2690cc420
Fixes #6603 - HTTP/2 max local stream count exceeded (#6639) (#6682)
* Fixes #6603 - HTTP/2 max local stream count exceeded (#6639)

Made MAX_CONCURRENT_STREAMS setting work on a per-connection basis.
Updated Pool javadocs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Co-authored-by: Greg Wilkins <gregw@webtide.com>
(cherry picked from commit 525fcb31194c62c44c912504ded177e30ff78c52)
2021-09-01 10:27:40 +02:00
Lachlan Roberts
763820e111 ByteBufferCallbackAccumulator.writeTo should do buffer flipping
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-30 14:58:16 +10:00
Lachlan Roberts
b2657f1376 fix broken tests: use buffer.remaining() instead of BufferUtil.space()
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-30 12:45:32 +10:00
Lachlan Roberts
7569e4b07a Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-6566-WebSocketMessageSinks 2021-08-27 17:21:53 +10:00
Lachlan Roberts
1dce9df48d Issue #6566 - cleanups of ByteBufferCallbackAccumulator
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-27 11:49:18 +10:00
Lachlan Roberts
83f2265653 Issue #6642 - never shutdown output after generating a request.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-26 14:18:28 +10:00
Joakim Erdfelt
54edcefd66 Issue #6661 - Make ServerConnector socket options setting optional 2021-08-24 16:45:06 -05:00
Lachlan Roberts
bd396f867b Fix some more unstable tests.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-19 20:43:13 +10:00
Lachlan Roberts
026261f482 Issue #6566 - use counter in BufferCallbackAccumulator, fix InputStreamMessageSinkTest failures
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 17:10:12 +10:00
Lachlan Roberts
5236e47c42 Issue #6566 - utilise the demand interface in the websocket MessageSinks
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 11:04:14 +10:00
Lachlan Roberts
cc3a75937c Issue #6566 - Create BufferCallbackAccumulator to accumulate buffers with their callbacks
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 10:57:46 +10:00
Simone Bordet
dbc0ce7c13
Fixes #6372 - Review socket options configuration (#6610)
* Fixes #6372 - Review socket options configuration

Introduced in ClientConnector:

* tcpNoDelay
* reusePort
* receiveBufferSize
* sendBufferSize

Reworked configuration of socket options in ClientConnector.
JMX-ified ClientConnector.

Introduced reusePort in ServerConnector.
Updated server modules with the new reusePort property.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-08-13 17:39:52 +02:00
Ludovic Orban
c818581185 #6327 more latches, less sleeps
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-08-12 10:47:24 +02:00
Ludovic Orban
6881ee9a6a #6327 make SelectorManagerTest.testConnectTimeoutBeforeSuccessfulConnect always enabled, using latches and less wasteful timeouts
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-08-12 10:47:24 +02:00
Simone Bordet
49a08450c2
Fixes #6043 - Reimplement UnixSocket support based on Java 16. (#6522)
Fixes #6043 - Reimplement UnixSocket support based on Java 16.

* Introduced new module "jetty-server-unixdomain".
It uses reflection to access the Java 16 Unix-Domain classes to keep compatibility with the other modules and the build.
* Added Jetty module with only HTTP/1.1 support for now (requires review of the modules to reuse them with various connectors).
* Updated documentation to mention UnixDomainServerConnector.
* Updated client libraries to support Unix-Domain.
* Updated PROXY protocol implementation to support Unix-Domain.
* Replaced unix.socket.tmp with better named jetty.unixdomain.dir property.
Defaulted jetty.unixdomain.dir property to system property user.home under Windows.
Simplified code that runs Unix-Domain tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-08-05 10:04:37 +02:00
Greg Wilkins
d781ec3546
Improve #6322 extensible ArrayRetainableByteBufferPool (#6538)
Add a exponential bucket size impl to test ArrayRetainableByteBufferPool extensibility

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2021-07-26 10:43:50 +10:00
Ludovic Orban
c9a5d8df58 #6322 Use RetainableByteBuffer and write a new pool for it
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-07-24 11:14:21 +02:00
Simone Bordet
b8d6e3f010
Fixes #6410 - Use SocketAddress instead of InetSocketAddress. (#6414)
* Fixes #6410 - Use SocketAddress instead of InetSocketAddress.

Removed usages of InetSocketAddress in method signatures where possible.
Deprecated old methods, and added new methods with SocketAddress.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-06-17 10:18:08 +02:00
Greg Wilkins
a415606e01
Rename EWYK The AdaptiveExecutionStrategy (#6353)
Rename EWYK to AdaptiveExecutionStrategy, which better represents the nature of the strategy.

Updated the documentation 
Refactored substrategy selection for code clarity.
Added notes about chaining strategies and thread starvation

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2021-06-16 17:22:08 +10:00
Ludovic Orban
33c1b14ada #6379: requeue at the tail to reduce contention + use a simpler concurrent queue implementation
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-06-10 15:45:11 +02:00
Simone Bordet
21aba4a724 Fixes #6323 - HttpClient requests with redirects gets stuck/never calls onComplete()
* Reworked the total timeout handling.
* Now a CyclicTimeouts handles the exchanges in each HttpDestination,
and a CyclicTimeouts handles the exchanges in each HttpConnection
(rather than in HttpChannel).
* Now adjusting the total timeout for copied requests generated by
redirects and authentication.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 2e7d17400f44097b95f2110ba5b595ec90fbe03f)
2021-06-04 12:12:40 +02:00
Simone Bordet
c151b04535 Fixes #5931 - SslConnection should implement getBytesIn()/getBytesOut(). (#6335)
Updated ConnectionStatistics to report both the stats of all connections,
and the stats grouped by connection class.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit f902d12fe8b7a69d7f697db0ce8ff4495c9e2141)
2021-06-03 15:16:12 +02:00
Simone Bordet
67e2b4af2f
Fixes #5306 - Default jetty.*.acceptors should be 1. (#6236)
* Fixes #5306 - Default jetty.*.acceptors should be 1.

Changed the acceptor default to 1, with -1 calculating a value based on the number of cores.
Updated documentation.
Fixed a glitch in ManagedSelector.getMaxSelectedKeys() to return long, not double.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-05-20 09:34:07 +02:00
Simone Bordet
27db8ed65b
Fixes #6251 - Use CyclicTimeout for HTTP2Streams. (#6267)
* Fixes #6251 - Use CyclicTimeout for HTTP2Streams.

Introduced CyclicTimeouts to manage many entities that may timeout.
Rewritten HttpDestination request timeouts using CyclicTimeouts.
HTTP2Stream does not inherit from IdleTimeout anymore; now a
CyclicTimeouts in HTTP2Session manages the stream timeouts.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-05-16 20:37:33 +02:00
Simone Bordet
de2d764290 Fixes #6254 - Total timeout not enforced for queued requests.
Fixed logic in HttpDestination.RequestTimeouts, where now a timeout
is scheduled only when the expiration time is less than the existing one.
Various code cleanups.
Renamed HttpDestination.TimeoutTask to RequestTimeouts for clarity.
Improved javadocs, code comments and logging.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 5f23689aa7f44c0660ba2ad92c7c6a15d7c4af15)
(cherry picked from commit da50e06b640d448d42e642c842cf9bc647797a49)
(cherry picked from commit 88ac10439a8b5ec1c34aaab4ccbf0f590aee33f8)
2021-05-12 10:19:11 +02:00
Lachlan
4c98990cd9
Create FileBufferedResponseHandler to buffer responses into a file. (#6010)
FileBufferedResponseHandler adds an HttpOutput.Interceptor to buffer all responses into a file until the output is closed. This allows the commit to be delayed until the response is complete and thus headers and response status can be changed while writing the body.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-04-19 11:02:44 +10:00
Greg Wilkins
20fae6485c
Jetty 10.0.x #5684 disabled tests (#6081)
* Fixes for #5684
Simplified CyclicTimeoutTest#testBusy
InclusiveByteRange clears range list on errors
InclusiveByteRange is forgiving of tab separators and leading 0s

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2021-03-30 22:24:56 +02:00
Greg Wilkins
96f707f74b
Fix #6082 Reduce SSL buffer compaction (#6083)
Fix #6082 Reduce SSL buffer compaction
Only compact when buffer is underflown.  Note that BufferUtil will also do a cheap "compact" when flipping empty buffers.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2021-03-23 22:04:27 +01:00
Simone Bordet
039c7386d0 Fixes #6072 - jetty server high CPU when client send data length > 17408.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-03-22 23:24:57 +01:00
Joakim Erdfelt
be22761a20 Fixes #6072 - jetty server high CPU when client send data length > 17408.
Avoid spinning if the input buffer is full.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-03-22 23:24:57 +01:00
Simone Bordet
938d7d8e88 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-02-17 19:15:09 +01:00
Simone Bordet
25d90380c7 Fixes #5973 - Proxy client TLS authentication example.
Examples, in form of test cases for a proxy that uses TLS client authentication
both towards the remote client and towards the server.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-02-17 14:48:47 +01:00
Simone Bordet
0ccaa9f87b Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-02-03 15:25:09 +01:00
Simone Bordet
755ec458d5 Fixes #5787 - Make ManagedSelector report better JMX data.
Added SampleStatistics to record data and JMX methods to export it.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-01-22 19:14:31 +01:00
Joakim Erdfelt
e81c847998
Happy New Year 2021 (Jetty 10 edition)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-01-21 15:05: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
Lachlan Roberts
e340227066 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-12-28 16:27:29 +11:00
Lachlan
3d11d4e071
Merge pull request #5789 from eclipse/jetty-9.4.x-5783-ConnectionStatisticsRates
Fix the calculation of rates in ConnectionStatistics
2020-12-28 16:26:55 +11:00
Lachlan Roberts
4e9e9b8d19 Remove the total count from the RateCounter.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-21 15:55:54 +11:00
Lachlan Roberts
477a6c0a10 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-15 20:58:33 +11:00
Lachlan Roberts
41cffa0bc4 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-ByteAccumulator 2020-12-15 16:49:23 +11:00
Joakim Erdfelt
f0badc5c5e
Issue #5784 - Fixing source header text: EPL-2.0 OR Apache-2.0
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-12-10 16:04:50 -06:00
Lachlan Roberts
ffe3aa4459 Issue #5783 - fix getRate() methods on ConnectionStatistics
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-10 22:15:59 +11:00
Ludovic Orban
c8ffa675dd merged jetty-9.4.x into jetty-10.0.x
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-12-09 16:40:57 +01:00
Ludovic Orban
415196520e fix race condition that may make the bucket cleaning pick the wrong one in case the timestamp is read while being modified 2020-12-09 16:33:29 +01:00
Lachlan Roberts
8aedc50048 fix missing usage of the new _direct field in ByteBufferAccumulator
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-02 00:07:38 +11:00
Lachlan Roberts
6dce1cbffd Make ByteBufferAccumulator direct configurable
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-01 10:07:18 +11:00
Lachlan Roberts
602cd7e5c0 throw ArithmeticException on integer overflow from size
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-01 09:51:09 +11:00
Simone Bordet
a2c0818811 Merged branch 'jetty-10.0.x' into 'jetty-10.0.x-5691-httpinput_skip_fill_interest'. 2020-11-20 19:10:55 +01:00
Simone Bordet
428d60bc3c Javadocs fixes.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-11-20 19:02:50 +01:00