Commit Graph

17983 Commits

Author SHA1 Message Date
Simone Bordet 1d16310bd2
Merge pull request #4953 from lorban/jetty-9.4.x-4855-h2spec-8-1-2-6-failure
Fix h2spec 8.1.2.6 test failure
2020-06-09 17:07:22 +02:00
Ludovic Orban 714a9204b3 #4855 fix race condition that can sometimes make H2 stream send an improper reset with cancel error code instead of protocol error code when the client sends more data than the content-length header specifies
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-06-09 16:59:49 +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
Chris Walker 7c1d290d89
Added Jetty 11 to version matrix 2020-06-06 13:42:29 -05:00
Joakim Erdfelt eac4187a29
Merge pull request #4940 from eclipse/jetty-9.4.x-4939-accept_queue_size_docs
Fixes #4939 - acceptorQueueSize [sic]
2020-06-04 14:01:54 -05:00
Joakim Erdfelt c75f1b3888
Adding note to Example code about it not being secure
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-04 12:00:48 -05: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
Simone Bordet b904a5cc85 Do not assume the ByteBuffer has a backing byte array.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-04 11:49:42 +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 2834f93447
Merge pull request #4935 from lorban/jetty-9.4.x-4877-fix-PathMappings-get
#4877 fix PathSpec long-standing bugs and shortcomings
2020-06-03 11:46:38 -05:00
Ludovic Orban e43c98f08d Signed-off-by: Ludovic Orban <lorban@bitronix.be> 2020-06-03 17:58:01 +02:00
Ludovic Orban 6c62157865 Signed-off-by: Ludovic Orban <lorban@bitronix.be> 2020-06-03 16:30:26 +02:00
Jan Bartel 5d328ba928 Suppress debug stacktrace for TestFileSessions.testSweep
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-06-03 10:26:13 +02:00
Jan Bartel 74a2ce7a42
Issue #4826 Upgrade to apache jsp 8.5.54 (#4932)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-06-03 10:04:55 +02:00
Lachlan f671cf6512
Merge pull request #4884 from lorban/jetty-9.4.x-4877-pathSpec
Refactor PathSpec and fix javax.websocket URI Template matching
2020-06-03 11:50:09 +10:00
Simone Bordet 88a139628f
Merge pull request #4930 from eclipse/jetty-9.4.x-4929-request_cookies_not_sent_when_cookiestore_empty
Fixes #4929 - HttpClient: HttpCookieStore.Empty prevents sending cook…
2020-06-01 21:55:56 +02:00
Simone Bordet 4277759a85 Fixes #4904 - WebsocketClient creates more connections than needed.
After merge fixes.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-01 17:19:31 +02:00
Simone Bordet 46c62d48d2 Fixes #4929 - HttpClient: HttpCookieStore.Empty prevents sending cookies.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-01 17:02:28 +02:00
Joakim Erdfelt 44d601aa60
Merge pull request #4924 from eclipse/jetty-9.4.x-4923-sslattributes-cache
Issue #4923 - restore caching of SSLSession information for SSL Attributes
2020-06-01 09:40:08 -05:00
Simone Bordet 0ae2fff361
Fixes #4904 - WebsocketClient creates more connections than needed. (#4911)
* Fixes #4904 - WebsocketClient creates more connections than needed.

Fixed connection pool's `acquire()` methods to correctly take into account the number of queued requests.
Now the connection creation is conditional, triggered by
explicit send() or failures.
The connection creation is not triggered _after_ a send(),
where we aggressively send more queued requests - or
in release(), where we send queued request after a previous
one was completed.
Now the connection close/removal aggressively sends more
requests triggering the connection creation.

Also fixed a collateral bug in `BufferingResponseListener` - wrong calculation of the max content length.

Restored `ConnectionPoolTest` that was disabled in #2540, cleaned it up, and let it run for hours without failures.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-01 15:48:44 +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
Greg Wilkins 646010e309
Jetty 9.4.x #4890 do not index large fields (#4927)
* Issue #4890 Large HTTP2 Fields encoded

When choosing a strategy to encode a HTTP2 field, do not use indexed
if the field is larger than the dynamic table.

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

* Issue #4890 Large HTTP2 Fields encoded

Fixed checkstyle in test

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

* Issue #4890 Large HTTP2 Fields encoded

Only index 0 content-length

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

* Issue #4890 Large HTTP2 Fields encoded

Fixed comments

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

* Issue #4890 Large HTTP2 Fields encoded

Don't parse int

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-06-01 14:12:50 +02:00
olivier lamy ab0d5e7121 simplify release script to not call goals already triggered by eclipse-release profile
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-31 09:04:59 +10:00
Jan Bartel d0ecfbfd56
Issue #4921 (#4922)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-05-30 12:46:21 +02: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
Lachlan 29a93a4a2a
Merge pull request #4914 from eclipse/jetty-9.4.x-4913-runDistroException
Issue #4913 - jetty-maven-plugin recursively delete target jetty-base
2020-05-28 13:51:52 +10: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
olivier lamy 85b500fc15 cleanup unused imports
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-27 20:27:14 +10: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 2b1fa80b63 always run the test except if Docker not available
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-27 16:00:23 +10:00
olivier lamy 7cc3573ceb remove derby system property
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-27 16:00:23 +10:00
olivier lamy 389f46c826 bye bye Derby tests, only use mariadb via container
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-05-27 16:00:23 +10: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
Lachlan Roberts ce7ef4396f Issue #4913 - jetty-maven-plugin recursively delete target jetty-base
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-27 14:05:36 +10:00
Lachlan 0b8306976a
Merge pull request #4906 from eclipse/jetty-9.4.x-4903-WebSocketPublicModifier
Issue #4903 - give better errors for non public javax.websocket endpoints
2020-05-27 09:43:24 +10:00
Lachlan Roberts a11c7f554c Issue #4903 - cleanup catch statement from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-27 09:42:44 +10:00
Lachlan Roberts 5c63b0ef78 Issue #4903 - catch Throwable instead of RuntimeException
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-26 17:37:04 +10:00
Lachlan Roberts c41560c7cd Issue #4903 - add cause to Exception when creating endpoint instance
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-26 15:35:39 +10:00
Lachlan Roberts 470d948504 Issue #4903 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-26 09:35:17 +10:00
Joakim Erdfelt 051e102122
Merge remote-tracking branch 'origin/release-9.4.29' into jetty-9.4.x 2020-05-25 08:43:41 -05:00
Lachlan 4611379c86
Merge pull request #4882 from eclipse/jetty-9.4.x-4873-ExecutorThreadPoolJoin
Issue #4873 - fix timeout on ExecutorThreadPool.join()
2020-05-25 14:07:28 +10:00
Lachlan Roberts add00c9dd8 Issue #4903 - check endpoint class is default constructable
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-25 13:57:41 +10:00
Lachlan Roberts 28a588b8bd Issue #4903 - Better errors for non public endpoints
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-25 12:36:09 +10:00
Lachlan Roberts 74f9b464a6 Issue #4873 - generalize test for all ThreadPools
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-22 10:49:42 +10:00
Joakim Erdfelt 5d6f3e2ddc Updating to version 9.4.30-SNAPSHOT 2020-05-21 13:42:25 -05:00