Commit Graph

2160 Commits

Author SHA1 Message Date
Lachlan 9b501022d5
Merge pull request #7166 from eclipse/jetty-10.0.x-6974-ByteBufferPool
Issue #6974 - improvements & fixes to ByteBufferPool implementations (#7017)
2021-12-03 14:46:16 +11:00
Simone Bordet cb25a83667
Issue #6728 - Prepare for QUIC and HTTP/3 (#7100)
* Issue #6728 - QUIC and HTTP/3

Modifications to Jetty to prepare for QUIC/HTTP3.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-01 09:39:51 +01:00
Lachlan Roberts 74785dd023 Issue #6974 - improve testMaxMemory for Array & Mapped ByteBufferPools
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-29 14:41:51 +11:00
Lachlan Roberts aa09b8b7bd Issue #6974 - allow empty buffers to be pooled
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-29 14:06:20 +11:00
Lachlan Roberts 377d0d131e Issue #6974 - fix bug in ByteBufferPool implementations
If an allocation size of 0 was requested bucketFor would throw.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-26 17:30:14 +11:00
Lachlan c19921e60f Issue #6974 - improvements & fixes to ByteBufferPool implementations (#7017)
- WebSocket should user server ByteBufferPool if possible
- fix various bugs ByteBufferPool implementations
- add heuristic for maxHeapMemory and maxDirectMemory
- Add dump for ByteBufferPools
- add LogArrayByteBufferPool that does exponential scaling of bucket size.
- ByteBufferPools should default to use maxMemory heuristic
- Add module jetty-bytebufferpool-logarithmic

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2021-11-25 10:42:47 +11:00
Joakim Erdfelt cfc67f86d2 Updating to version 10.0.8-SNAPSHOT 2021-10-06 14:51:32 -05:00
Joakim Erdfelt da8a4553af Updating to version 10.0.7 2021-10-06 14:32:37 -05:00
Simone Bordet 0412bdc3d9 Fixes #6938 - module-info.java file do not use the canonical order for the elements
Changed order of entries in module-info.java to be canonical

(cherry picked from commit 02691171d5)
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-10-01 09:25:55 +02:00
Olivier Lamy 51d44a3401
use dependencyManagement for internal dependencies (#6940)
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-09-30 16:57:19 +10:00
Greg Wilkins aa793eeafe
Jetty 10.0.x 6497 alias checkers alt (#6681)
* Issue #6497 - Replace the Alias checkers with new implementation.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Co-authored-by: Lachlan Roberts <lachlan@webtide.com>
2021-09-21 18:35:51 +10:00
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 525fcb3119)
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
Joakim Erdfelt c245a70893 Updating to version 10.0.7-SNAPSHOT 2021-06-29 10:51:22 -05:00
Joakim Erdfelt 37e7731b4b Updating to version 10.0.6 2021-06-29 10:27:56 -05: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
Joakim Erdfelt 9d2d1e29b7 Updating to version 10.0.6-SNAPSHOT 2021-06-11 09:42:42 -05:00
Joakim Erdfelt dc21b2d73c Updating to version 10.0.5 2021-06-11 09:18:00 -05: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
Joakim Erdfelt 987066aac1 Updating to version 10.0.5-SNAPSHOT 2021-06-04 13:28:47 -05:00
Joakim Erdfelt 5523480c54 Updating to version 10.0.4 2021-06-04 13:09:44 -05: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 2e7d17400f)
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 f902d12fe8)
2021-06-03 15:16:12 +02:00
Simone Bordet 9ace21992e Updated POM versions to 10.0.4-SNAPSHOT.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-05-21 17:07:46 +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 5f23689aa7)
(cherry picked from commit da50e06b64)
(cherry picked from commit 88ac10439a)
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
Olivier Lamy a0796d1055 Updating to version 10.0.3-SNAPSHOT 2021-03-26 06:31:31 +00:00
Olivier Lamy 7bd207b309 Updating to version 10.0.2 2021-03-26 06:13:42 +00:00
Olivier Lamy d27363fa55 back to 10.0.2-SNAPSHOT
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-03-26 06:10:47 +00:00
Jesse McConnell 7a9e01ac56
Updating to version 10.0.3-SNAPSHOT 2021-03-25 10:38:15 -05:00
Jesse McConnell aac6bfbd48
Updating to version 10.0.2 2021-03-25 10:21:44 -05:00