Commit Graph

1632 Commits

Author SHA1 Message Date
Greg Wilkins b2ff7c5cb8 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-01-08 21:30:12 +01:00
Greg Wilkins 41050cd8a4
Issue #2081 No idle timeout exception when dispatch is delayed (#2083)
Issue #2081 No idle timeout exception when dispatch is delayed
* Delegate the readtimeout handling to HttpChannel so that a delayed dispatch can be ended.
* Added unit test for delayed dispatch idle
* Now using HttpInput.onIdleTimeout() to fail the HttpInput, and then dispatching the request in case it has not been dispatched yet. This ensure consistent behavior independently of the value of HttpConfiguration.delayDispatchUntilContent.
* Fixed for both HTTP/1.1 and HTTP/2.
* Added tests for non-blocking reads.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-01-04 13:26:31 +01:00
Greg Wilkins 54c55b602f
ManagedSelector dump improvements from #1970 (#2062)
* ManagedSelector dump improvements from #1970

ManagedSelector dump improvements from #1970:
 + DumpKeys is now prepended to actions list so it is less likely to be delayed by a stuck/busy selector
 + Timestamps are included for actions and keys which may be separated by time
 + Race removed race for updating dumpKey list while it is being added to.

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

* moved utility timestamp format method to Log

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

* updates after review

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

* changes after review

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

* Issue #1970 - ManagedSelector dump improvements.

Code cleanups.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Revert "Issue #1970 - ManagedSelector dump improvements."

This reverts commit 4febaf10dc.

* Fixed imports and other review feedback

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-01-02 11:13:24 +01:00
Greg Wilkins 12647f51e7 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-12-27 16:04:16 +01:00
Simone Bordet e86e8a752c Issue #1973 - Implement minimum response data rate (#2012)
* Code cleanups.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Improved test case handler.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Improved exception message.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Issue #1973 - Implement minimum response data rate.

Implemented response content data rate control in HttpOutput.

Introduced a WriteFlusher.Listener interface that produces events
for every flush(). These events are forwarded to the Connection
and from there to the HttpOutput so that the data rate control can
be enforced.

Both HTTP/1.1 and HTTP/2 are implemented.
Data rate control for HTTP/1.1 is approximate because it will count
also headers bytes and the chunk bytes, while for HTTP/2 is precise.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Issue #1973 - Implement minimum response data rate.

Addressed review comments.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2017-12-27 15:07:32 +01:00
Jan Bartel 78a2c8c6d2 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-12-06 15:46:49 +01:00
Simone Bordet 2067eac701 Issue #2003 - Do not submit blocking tasks as managed selector actions.
CreateEndPoint and DestroyEndPoint are now submitted directly to
the Executor, rather than being submitted as selector actions.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2017-12-02 00:28:20 +01:00
Joakim Erdfelt 70fe268bde Merge branch 'release-9.4.8' into jetty-9.4.x 2017-11-29 10:52:02 -07:00
Joakim Erdfelt aeb1a1d6cd Merge tag 'jetty-9.4.8.v20171121' into jetty-9.4.x
Tag for release: jetty-9.4.8-SNAPSHOT

 + 212 HttpClient should support pluggable AuthenticationStore
 + 215 Add Conscrypt for native ALPN/TLS/SSL
 + 272 WebSocket hangs in blockingWrite
 + 487 JDK 9 build compatibility
 + 901 Overriding SSL context KeyStoreType requires explicit override of
   TrustStoreType
 + 922 Implements methods Connection.getBytes[In|Out]()
 + 1209 IllegalStateException when HTTP/2 push is disabled
 + 1213 Upgrade to ASM Version 6.0 for JDK9
 + 1509 Improve GZIPContentDecoder buffer pooling sizing
 + 1550 Resolve inconsistent Shutdown configuration with Jetty Runner
 + 1640 Introduce :run-distro goal for local jetty distribution deployment
 + 1692 Annotation scanning should ignore `module-info.class` files
 + 1696 Missing stacktraces on debug of WriteFlusher onFail
 + 1705 Rejected executions in QueuedThreadPool can lead to memory leaks
 + 1760 Update to apache jasper 8.5.20
 + 1768 Allow jetty properties to be set for the jetty:run-forked goal
 + 1782 Using assembly.tarLongFileMode=posix for jetty-home and
   jetty-distribution assembly
 + 1797 JEP 238 - Multi-Release JAR files break bytecode scanning
 + 1806 Improved ReservedThreads idle timeout
 + 1807 Add new HttpChannel listener and events for metrics libraries
 + 1814 Move JavaVersion to jetty-util for future Java 9 support requirements
 + 1818 Improve Infinispan support on JDK 9
 + 1819 Race condition during annotation parsing
 + 1823 ResourceHandler with ranged requests does not return Content-Type
   response header
 + 1829 OSGi webbundle classes scanned twice
 + 1833 Request.startAsync requires context path
 + 1835 Locker is not reentrant on ServerConnector#setConnectionFactories
 + 1836 Migrate Locker implementation to JVM ReentrantLock implementation
 + 1841 Reduce contention on ServletHolder
 + 1845 Allow null User-Agent in HttpClient
 + 1849 Refactoring of SelectorManager.defaultSchedulers()
 + 1851 Improve insufficient thread warnings/errors
 + 1854 Consistent IOException and timeout handling when extracting form
   parameters
 + 1856 ResourceHandler without ServletContext throws NPE for welcome files if
   used directly
 + 1857 GZIPContentTransformer fails to send entire message if used with
   BufferedContentTransformer
 + 1865 Improve Exception on invalid redirect usage
 + 1867 Improve Exception thrown during Expect 100 Continue
 + 1868 Need a way to randomly select ports for tests
 + 1871 JMXify SslContextFactory
 + 1878 Handle 100 Continue response without Expect header
 + 1879 'Bad tld url' seen during :jetty-run when running integration tests
 + 1881 Improve support of WebSocket over Unix Domain Socket
 + 1885 SessionHandler get/set maxInactiveInterval is not symmetric with
   negative values
 + 1888 Implement cookie matching on Path attribute per RFC 6265
 + 1891 Make HTTP/2 async error notifications configurable
 + 1892 NPE resulting from bad JEP 238 MultiReleaseJarFile structure
 + 1893 Add ability to set HttpClient Connection TTL
 + 1897 Introduce a round-robin connection pool for HttpClient
 + 1900 Update to CDI 2.0 for cdi module
 + 1901 Reimplement PathWatcher as scanner
 + 1909 Update to Apache Jasper 8.5.23
 + 1910 Remove unused jetty-jsp module
 + 1912 AbstractConnector EndPoint leak for failed SSL connections
 + 1914 HttpClient fails to parse Content-Type response header with RFC 2045
   charset="utf-8" syntax
 + 1919 Review LowResourceMonitor
 + 1920 Connect Timeouts with NonBlocking CreateEndPoint
 + 1924 ManagedSelector can livelock under high load
 + 1931 Expose RolloverOutputStream for pluggable behaviour
 + 1933 Use CLASSPATH for scanning java9 system classes
 + 1956 Store and report build information of Jetty
 + 1958 Blocking Timeout has different behavior in HttpInput vs HttpOutput
 + 1970 ManagedSelector can lose selector thread under high concurrent load
 + 1980 PushCacheFilter does not push TLS offloaded HTTP/2 requests
 + 1981 Loading resource content failed
 + 1984 Remove jetty-client dependency in jetty-rewrite
2017-11-29 10:51:22 -07:00
Jan Bartel e06f5b3c3f Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-11-22 13:03:31 +01:00
Greg Wilkins 6ac4e770a6 Issue #1983 Warn on connection failures
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2017-11-22 11:08:20 +01:00
Joakim Erdfelt ff53002fac Updating to version 9.4.9-SNAPSHOT 2017-11-21 13:11:31 -07:00
Joakim Erdfelt 82b8fb23f7 Updating to version 9.4.8.v20171121 2017-11-21 12:33:52 -07:00
Simone Bordet f672b7e932 Merged branch 'jetty-9.4.x' into 'master'. 2017-11-16 11:36:05 +01:00
Simone Bordet 131f46df64 Improved dump of ManagedSelector.
Now also dumping the actions.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2017-11-16 11:35:18 +01:00
Greg Wilkins bb0f06fecc Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-11-14 18:15:55 +01:00
Simone Bordet 0f07c6518e
Issue #1970 - ManagedSelector loses selector thread (#1971)
* Issue #1970 - ManagedSelector loses selector thread.

Removed broken data structure ConcurrentStack (ABA problem).

Made ReservedThreadExecutor use a ConcurrentLinkedDeque
instead of ConcurrentStack.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2017-11-14 10:48:33 +01:00
Greg Wilkins 47d46ec60e
Issue #1924 - ManagedSelector livelock. (#1963)
* Issue #1924 - ManagedSelector livelock.

Alternate implementation that is count based rather than time based.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2017-11-14 10:27:04 +01:00
Simone Bordet 1fdb974a35 Merged branch 'jetty-9.4.x' into 'master'. 2017-11-08 22:47:56 +01:00
Simone Bordet 761dccd10c Now dumping also SelectionKeys that throw when accessed. 2017-11-08 22:47:16 +01:00
Simone Bordet e244aad86e Merged branch 'jetty-9.4.x' into 'master'. 2017-11-08 22:44:20 +01:00
Simone Bordet d1e5883ad4 Issue #1920 - Connect Timeouts with NonBlocking CreateEndPoint.
Made CreateEndPoint and DestroyEndPoint blocking.
2017-11-08 16:28:40 +01:00
Greg Wilkins 6fb7c9ec2e
Issue #1939 fair selector choice (#1937)
* Issue #1939 fair selector choice

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

* Issue #1939 removed address based heuristic for choosing selector

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

* Issue #1939 removed println

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

* Issue #1939 use lambda syntax sugar

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2017-11-04 00:22:45 +11:00
Simone Bordet 108d56707b Merged branch 'jetty-9.4.x' into 'master'. 2017-10-30 12:58:48 +01:00
Simone Bordet 0142509975 Issue #1920 - Connect Timeouts with NonBlocking CreateEndPoint.
Reverted CreateEndPoint to be non-blocking, as
the real issue was determined to be #1924 instead.
2017-10-30 00:42:53 +01:00
Simone Bordet 333c22d670 Issue #1924 - ManagedSelector livelock.
* Actually using the MAX_ACTION_PERIOD value rather than a harcoded one.
* Waking up the selector outside the sync block.
2017-10-30 00:36:01 +01:00
Greg Wilkins 4fa2140d17 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-10-29 08:21:22 +11:00
Greg Wilkins ab849e8cc5 Issue #1920 - Connect Timeouts with NonBlocking CreateEndPoint.
Added a LiveLock (BusyBlocking) test.
Modified ManagedSelector to fair share between actions and selecting
2017-10-28 14:55:40 +11:00
Simone Bordet f59bb64e07 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-26 10:02:27 +02:00
Simone Bordet 9fd47fd383 Improved logging. 2017-10-26 10:01:49 +02:00
Simone Bordet aca8f8a4b2 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-26 00:39:47 +02:00
Simone Bordet bfaa2d536b Fixes #1920 - Connect Timeouts with NonBlocking CreateEndPoint.
Made CreateEndPoint a blocking task, because it calls into application
code via Connection.Listener, and for safety we assume it may be
blocking code, avoiding to stall the processing of NIO selected keys.
2017-10-26 00:21:51 +02:00
Greg Wilkins 2bd39c897d Issue #1912 refixed onOpen call for SSL leak 2017-10-26 09:08:21 +11:00
Simone Bordet 2cd04a1b17 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-25 11:03:17 +02:00
Simone Bordet ce39d50a55 Fixes #1920 - Connect Timeouts with NonBlocking CreateEndPoint.
Only for the client having a non-blocking CreateEndPoint was a problem,
because it was sending requests from onOpen().
For a busy client with always queued requests, CreateEndPoint.run()
did never return, causing the NIO selection to stall.
2017-10-25 09:21:22 +02:00
Jan Bartel 84f69bdcc5 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-10-25 16:38:36 +11:00
Greg Wilkins ce5993bc6f Issue #1920 Connect timeout
Improved the ManagedSelector Dump
Reverted CreateEndPoint to be a blocking task
2017-10-25 15:59:51 +11:00
Simone Bordet 50d3aa9333 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-23 17:37:54 +02:00
Simone Bordet 0519372382 Dumping the SelectionKeys is a non-blocking action. 2017-10-23 16:57:12 +02:00
Greg Wilkins a210add95a Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-10-20 10:45:46 +11:00
Greg Wilkins 71c78db60e Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-10-20 09:48:01 +11:00
Greg Wilkins 06e00355a2 Fixed #1912 2017-10-20 09:41:47 +11:00
Simone Bordet c40e0ce0f3 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-06 17:09:02 +02:00
Simone Bordet bc7d53b43f Fixes #1696 - WriteFlusher debug of onFail does not log stacktraces.
Fixed logging of exceptions.
2017-10-06 17:08:30 +02:00
Simone Bordet bee383c894 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-03 01:22:35 +02:00
Simone Bordet 2b43e668a3 Cosmetics. 2017-10-02 17:18:10 +02:00
Simone Bordet 807233771d Removed unnecessary field _maxSize. 2017-10-02 17:17:50 +02:00
Simone Bordet 3b98a6c000 Issue #1851 - Improve insufficient thread warnings/errors.
ThreadBudget -> ThreadPoolBudget.
Added selectors to the leased threads.
2017-10-02 13:40:31 +02:00
Simone Bordet 17a1484143 Code cleanups.
Removed unnecessary imports and fixed typos.
2017-10-02 11:43:45 +02:00
Greg Wilkins 1ce96be964 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-09-28 07:58:15 +10:00