Commit Graph

4357 Commits

Author SHA1 Message Date
Lachlan effcccd27a
Merge pull request #4980 from eclipse/jetty-9.4.x-threadPoolDocumentation
fix documentation on where to configure ThreadPool
2020-07-07 18:18:48 +10:00
Simone Bordet f2c6b67827
Fixes #4971 - Simplify Connection.upgradeFrom()/upgradeTo(). (#5008)
Fixes #4971 - Simplify Connection.upgradeFrom()/upgradeTo().

Now the upgrade-from connection produces a "floating" buffer 
(not belonging to a pool), so that it can release the original buffer.

The upgrade-to connection is free to copy or store this "floating" buffer.

Strengthened ByteBufferPool behavior when releasing non-pooled
ByteBuffers: the buffer is now discarded.

Updated javadocs and all implementations.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-06 22:45:03 +02:00
Lachlan 9a56301de1
Merge pull request #5004 from eclipse/jetty-9.4.x-4985-AttributeNameSet
Issue #4985 - fix NPE related to use of Attributes.Wrapper getAttributeNameSet()
2020-07-06 11:34:27 +10:00
Simone Bordet ae43b70a9f
Jetty 9.4.x 4967 buffer corruption for http2 failures (#5001)
Fixes #4967 - Possible buffer corruption in HTTP/2 session failures

Partially reverted the changes introduced in #4855, because they
were working only when sends were synchronous.

Introduced ByteBufferPool.remove(ByteBuffer) to fix the issue.
Now when a concurrent failure happens while frames are being
generated or sent, the buffer is discarded instead of being
recycled, therefore resolving the buffer corruption.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-03 16:35:33 +02:00
Lachlan Roberts f35d6cfd80 Issue #4985 - remove TODO in Dispatcher
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-02 16:02:24 +10:00
Lachlan Roberts 9126b282b1 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-4985-AttributeNameSet 2020-06-30 11:22:41 +10:00
Joakim Erdfelt 3adec35cf5
Fixing CustomImportOrder checkstyle violations
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-25 09:25:05 -05:00
Lachlan Roberts 693312a577 Issue #4985 - ensure every attribute in getAttributeNameSet has a non null value
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-25 23:15:12 +10:00
Lachlan Roberts 5ce5737395 fix information on ThreadPool configuration
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-18 17:45:32 +10:00
Joakim Erdfelt 6df6fa33b8 Updating to version 9.4.31-SNAPSHOT 2020-06-11 08:24:34 -05:00
Joakim Erdfelt 271836e4c1 Updating to version 9.4.30.v20200611 2020-06-11 07:21:18 -05:00
Jan Bartel cb09abe873
Issue #4920 Restore ability to invalidate sessions on shutdown (#4933)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-06-10 18:40:19 +02:00
Simone Bordet 56bda1b3ae
Jetty 9.4.x 4855 h2spec failures (#4946)
* Fixes #4855 - Occasional h2spec failures on CI

In case of bad usage of the HTTP/2 API, we don't want to close()
the stream but just fail the callback, because the stream
may be performing actions triggered by a legit API usage.

In case of a call to `AsyncListener.onError()`, applications may decide to call
AsyncContext.complete() and that would be a correct usage of the Servlet API.
This case was not well handled and was wrongly producing a WARN log with an
`IllegalStateException`.

Completely rewritten `HttpTransportOverHTTP2.TransportCallback`.
The rewrite handles correctly asynchronous failures that now are executed
sequentially (and not concurrently) with writes.
If a write is in progress, the failure will just change the state and at the
end of the write a check on the state will determine what actions to take.

A session failure is now handled in HTTP2Session by first failing all the
streams - which notifies the Stream.Listeners - and then failing the session
- which notifies the Session.Listener.
The stream failures are executed concurrently by dispatching each one to a
different thread; this means that the stream failure callbacks are executed
concurrently (likely sending RST_STREAM frames).
The session failure callback is completed only when all the stream failure
callbacks have completed, to ensure that a GOAWAY frame is processed after
all the RST_STREAM frames.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-09 13:15:05 +02:00
Simone Bordet 029470c5dc Fixes #4939 - acceptorQueueSize [sic]
acceptorQueueSize -> acceptQueueSize.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-04 18:31:40 +02:00
Lachlan Roberts 38f56f5973 make some test methods public to fix build
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-04 09:26:35 +10:00
Greg Wilkins ff8ae56fa9
Issue #4936 response buffer corruption (#4937)
* Issue #4936 - Adding LargeHeaderTest to replicate issue

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #4936 - Updating LargeHeaderTest to use ServerConnector

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #4936 - Fail LargeHeaderTest if client detects issues.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #4936 large response header buffer corruption

If the response buffer is too large, the header buffer was released
but not nulled, then an exception thrown, which again released the
not nulled buffer.  The buffer thus ends up in the buffer pool twice!

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #4936 large response header buffer corruption

removed old comment

Signed-off-by: Greg Wilkins <gregw@webtide.com>

Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-03 22:54:12 +02:00
Joakim Erdfelt f9b75ff1a3
Issue #4923 - Applying changes requested in PR
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-01 07:15:07 -05:00
Joakim Erdfelt b6d24c2396
Issue #4923 - Applying changes requested in PR
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-01 07:13:28 -05:00
Joakim Erdfelt 6a953e3a0e
Issue #4923 - Applying changes requested in PR
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-29 16:30:08 -05:00
Joakim Erdfelt c1c2c07a51
Issue #4923 - restore caching of SSLSession information for SSL Attributes
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-29 13:30:59 -05:00
Jan Bartel 84cb97e6bd
Issue #4885 do not allow cookies to be set from an include (#4915)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-05-28 10:51:40 +02:00
Jan Bartel aae64f181c
Issue #4894 use schema and/or catalog name when creating sessions table (#4908)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-05-27 13:42:01 +02:00
Greg Wilkins e82cacfdb6
Jetty 9.4.x single context optimisation (#4909)
* Optimisation for single context

It is a frequent deployment mode to have only a single context.
In that case, the ContextHandlerCollection can bypass a bit of
looping/matching/selecting and just call the single context,
which it works out itself anyway if the request applies to it.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Optimisation for single context

updates from review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-05-27 09:53:13 +02:00
olivier lamy 1249763aad remove changes to DatabaseAdaptor with new fields username/password, use our own username/password in maria_db tests
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-27 16:00:23 +10:00
olivier lamy c05bd6c26d use testcontainers/docker to run jdbc sessions tests with Mariadb remote
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-27 16:00:23 +10:00
Joakim Erdfelt 5d6f3e2ddc Updating to version 9.4.30-SNAPSHOT 2020-05-21 13:42:25 -05:00
Joakim Erdfelt 77c232aed8 Updating to version 9.4.29.v20200521 2020-05-21 12:04:14 -05:00
Jan Bartel 52e7dd4873
Issue #4895 SessionCache flushOnResponseCommit with invalid session (#4896)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-05-20 23:05:53 +02:00
Lachlan Roberts 7111f5f161 Issue #4861 - AsyncAttributes should wrap ServletAttributes inner AttributesMap
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-14 08:33:31 +10:00
Lachlan Roberts 4aece5e9cf Issue #4861 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-13 23:12:22 +10:00
Lachlan Roberts 629e106045 Issue #4861 - increase efficiency of ServletAttributes when going async
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-13 19:10:11 +10:00
Lachlan Roberts 9f39fd1dd1 Issue #4861 - reduce garbage created by the async request attributes
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-12 18:28:23 +10:00
Joakim Erdfelt 86a40a07d6
Merge pull request #4863 from eclipse/jetty-9.4.x-4860-NullHttpFields
Issue #4860 - NPE from HttpFields
2020-05-11 21:04:50 -05:00
Greg Wilkins e86977394e
Issue #4828 Buffer Corruption (#4864)
+ improve synchronization around releaseBuffer
 + improve synchronization around acquireBuffer
 + made acquireBuffer private.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-05-11 21:48:06 +02:00
Greg Wilkins c497b61917 Issue #4860 NPE from HttpFields
Paranoid catch if sending and exception page throws an exception.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-05-11 13:57:17 +02:00
Ludovic Orban 409db8d065 introduce socket configuration properties in Jetty XML files
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-08 13:14:50 +02:00
Ludovic Orban 072cc978fb
add HttpConfiguration.Customizer implementation that sets request attributes containing the real local and remote address:port pairs (#4849)
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-07 19:53:15 +02:00
Joakim Erdfelt c50a52a392
Merge pull request #4844 from lorban/jetty-9.4.x-4843-proxyv2-ignored-address-length
proxy v2 skip address length bytes when LOCAL command is specified
2020-05-07 10:16:57 -05:00
Joakim Erdfelt e4fd49dc36
Merge pull request #4838 from eclipse/jetty-9.4.x-4835-gziphandler-flush
Issue #4835 - Addressing flush/commit with GzipHttpOutputInterceptor
2020-05-05 09:54:41 -05:00
Ludovic Orban d34cb2598b proxy v2 skip address length bytes when LOCAL command is specified
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-05 13:51:30 +02:00
Joakim Erdfelt d58da0f7d2
Issue #4824 - Addressing flush/commit with GzipHttpOutputInterceptor
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-04 09:22:08 -05:00
Simone Bordet 2fa161c515
Merge pull request #4790 from eclipse/jetty-9.4.x-4778-sni_with_one_certificate
Fixes #4778 - Enforcing SNI when there are only non-wildcards certifi…
2020-05-04 11:35:04 +02:00
Joakim Erdfelt c645d0f7c4
Issue #4835 - Addressing flush/commit with GzipHttpOutputInterceptor
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-01 14:42:08 -05:00
Greg Wilkins 8fcbf6d590
Improve Attributes Handling (#4816)
* Spun out from #4814 Improve Attributes Handling

Improve attribute handling to reduce garbage and improve lookup.
Introduced a Wrapper so that request can remove any layers on reset.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #4814 - Exposing AttributeMap.getAttributeNameSet() on Attributes.

The underlying AttributesMap already has a .getAttributeNameSet()
method, expose it on the Attributes interface.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Allow a set to override a secure attribute.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #4814 - Attributes.getAttributeNames() is now defaulted

The Attributes.getAttributeNames() will use the
.getAttributeNameSet() by default now.

Updated all Attributes.Wrapper impls to use this new behavior

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-04-28 10:16:29 +02:00
Simone Bordet 426c80bf6d Fixes #4778 - Enforcing SNI when there are only non-wildcards certificates.
If SNI is required, wrap the KeyManagers with SniX509ExtendedKeyManager.
Updated the main keystore file to only have one certificate (instead of two),
since there never was the need for two certificates in the tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-04-18 18:15:03 +02:00
Joakim Erdfelt 5699b9ff3d Updating to version 9.4.29-SNAPSHOT 2020-04-08 13:15:04 -05:00
Joakim Erdfelt ab228fde9e Updating to version 9.4.28.v20200408 2020-04-08 12:33:56 -05:00
Simone Bordet 4e3c0c8cd7 Fixes #4751 - Refresh NetworkTraffic* classes.
Introduced NetworkTrafficSocketChannelEndPoint to replace
NetworkTrafficSelectChannelEndPoint, now deprecated.

Code and javadocs cleanup.

Moved the tests to jetty-client so that also the client is tested.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-04-07 12:04:24 +02:00
Jan Bartel cf0e3c530f
Issue #4662 Ensure contextDestroyed called after filters and servlets destroyed (#4667)
* Issue #4662 Ensure contextDestroyed called after filters and servlets destroyed

Signed-off-by: Jan Bartel <janb@webtide.com>
2020-04-06 10:12:19 +02:00
Joakim Erdfelt 1cbb8d0232
Merge pull request #4740 from eclipse/jetty-9.4.x-4638-formcontentsize-doc
Issue #4638 - updating documentation about form limits
2020-04-02 07:03:54 -05:00