Commit Graph

975 Commits

Author SHA1 Message Date
John Luo 7c9e234457 Gracefully wait for streams to complete when pipe completes 2018-08-09 11:59:47 -07:00
Stephen Halter aaf0293ebc
Fix logging verification in tests (#2795) 2018-08-08 17:16:08 -07:00
Stephen Halter c0557cfca7
Improve exception handling in Http2Connection.ProcessRequestsAsync (#2787) 2018-08-08 11:20:49 -07:00
Chris Ross (ASP.NET) 5378900e0c Ack settings before window updates #2772 2018-08-08 11:19:23 -07:00
Chris Ross (ASP.NET) c73d513289 Add Http2 frame logging 2018-08-08 09:46:42 -07:00
John Luo 0a28806c17 Fix flaky graceful shutdown tests 2018-08-07 15:40:38 -07:00
Stephen Halter 0e99235d59
Add in-memory functional test project (#2780)
- Run AddressRegistrationTests independently to avoid port conflicts
- Only run tests that verify transport behavior for each transport
2018-08-07 15:34:11 -07:00
John Luo b494e50353 Fixup shutdown functional tests 2018-08-07 11:50:09 -07:00
John Luo 8a74cf3ed5 Gracefully shutdown HTTP/2 connections on server and client initiated shutdown 2018-08-07 10:59:29 -07:00
Chris Ross (ASP.NET) ea7e53cab0 Send Resets for unhandled app exceptions #2733 2018-08-06 11:35:42 -07:00
Chris Ross (ASP.NET) beca0259c2 Verify request Content-Length #2733 2018-08-02 13:23:57 -07:00
Stephen Halter 3cdb73440e
Disable memory pool late return validation in H2SpecTests (#2768)
- We should reenable once HTTP/2 graceful shutdown is implemented
2018-07-30 14:33:45 -07:00
Stephen Halter 6d46410a76
Don't ACK ACKs (#2767) 2018-07-30 12:25:32 -07:00
Chris Ross (ASP.NET) c7dd9ff68a Enable Http/2 by default #2720 2018-07-27 12:51:12 -07:00
Stephen Halter 94cfc01fbf
Implement HTTP/2 input flow control (#2740) 2018-07-27 10:47:27 -07:00
Nate McMaster 1f3524787e
Merge branch 'release/2.1' into release/2.2 2018-07-24 11:43:13 -07:00
Chris Ross (ASP.NET) 612fcca729 Validate Http/2 pseudo headers #2205 #2263 #2659 2018-07-19 16:25:10 -07:00
David Fowler b934e46161
Complete the transport pipes after connection middleware runs (#2735) 2018-07-19 11:49:46 -07:00
Stephen Halter 5f065b6670
Fix deadlock in GOAWAY_Received_RelievesConnectionBackpressure (#2724) 2018-07-16 10:55:09 -07:00
Chris Ross (ASP.NET) 429bcfe216 Sending and receiving RST frames. #2462 2018-07-16 09:13:11 -07:00
John Luo 6551eae321 Consolidate HTTP charset validation logic 2018-07-13 16:47:28 -07:00
Nate McMaster d8c77335e8
Reorganize code so Kestrel now produces the Microsoft.Extensions.Buffers.Testing.Sources package 2018-07-12 13:17:28 -07:00
Stephen Halter f179339a79 Combine BufferWriter and CountingBufferWriter 2018-07-12 11:58:49 -07:00
Stephen Halter 864cfeb2aa Merge branch 'release/2.1' into release/2.2 2018-07-12 11:18:41 -07:00
Nate McMaster 128eefdef3
Remove usage of the Microsoft.Extensions.Buffers.Sources package, copy the source into Kestrel
This moves source code that used to be in aspnet/Common. It was only used here, so this simplifies the process of working with these internal-only APIs.

cref https://github.com/aspnet/Common/pull/386
2018-07-11 22:31:23 -07:00
Chris Ross (ASP.NET) 6fde01a825 Replace PortSupportedCondition #2706 2018-07-11 13:47:16 -07:00
Stephen Halter a826f478ad Implement HTTP/2 output flow control (#2690) 2018-07-10 14:11:59 -07:00
Nate McMaster 181e521b40
Fix compiler error as a result of merging 2.1.2 into release/2.1 2018-07-10 12:37:07 -07:00
Nate McMaster 1d9db7c25f
Merge 2.1.2 into release/2.1 2018-07-10 10:34:35 -07:00
Stephen Halter 2ab22ac55a Merge branch 'release/2.1' into dev 2018-06-28 11:27:11 -07:00
Stephen Halter ac31e5ab30
[2.1.3] Consistently handle connection aborts (#2619)
* Decouple connection objects from the server (#2535)

- Making progress towards being able to use the connection objects on the client side.

* Wait for input writer to complete before calling OnConnectionClosed (#2566)

* Wait for the ConnectionClosed token to stop tracking connections (#2574)

- The prior strategy of waiting for the pipe completed callbacks doesn't work
  because blocks are returned to the memory pool after the callbacks are fired.

* Consistently handle connection resets (#2547)

* Provide better connection abort exceptions and logs

* void IConnectionDispatcher.OnConnection
2018-06-28 10:51:22 -07:00
John Luo 423d5432be Add test for ensuring HPACK lowercase header names
- ensure lowercase mask only applied to uppercase letters
2018-06-26 10:44:21 -07:00
Chris Ross (ASP.NET) 61e16e2b31 Automation for h2spec functional tests #2640 2018-06-21 11:17:16 -07:00
Chris Ross (ASP.NET) 324565772c Prevent app code from blocking the connection loop #2657 2018-06-20 11:06:49 -07:00
Chris Ross (ASP.NET) 2b269e0433 Set Min OS version for ALPN tests at Win 8.1. 2018-06-19 13:58:34 -07:00
Chris Ross (ASP.NET) c498f03cb4 Expose Tls details as a feature. #2661
Limit Http/2 to TLS 1.2 #2251
Bootstrap functional tests #2238
2018-06-18 16:25:18 -07:00
Mike Harder 35d9590f3c
Prevent double-close race condition in ListenHandleTests.CanListenToOpenTcpSocketHandle() (#2666) 2018-06-14 12:50:03 -07:00
John Luo 13663e1e15 Convert to using definitions from HeaderNames 2018-06-13 11:24:24 -07:00
Nate McMaster ff3f0e905d
Merge branch 'release/2.1' into release/2.1.2 2018-06-12 14:16:29 -07:00
Stephen Halter ee86e97b6b
React to aspnet/BuildTools#684 (#2660)
* Update KoreBuild
* Minimize blocking threads to increase travis reliability
2018-06-11 16:43:33 -07:00
Chris Ross (ASP.NET) a217206f1f Enforce max frame size #2651 2018-06-11 14:20:43 -07:00
Chris Ross (ASP.NET) 810a302e66 Disable AllowRenegotiation for HTTP/2 2018-06-11 13:51:23 -07:00
Chris Ross (ASP.NET) 00827e38bb Harden TFM checks #2624 2018-06-07 14:56:23 -07:00
Chris Ross (ASP.NET) bac99ad086 React to Uri scope break 2018-06-04 20:10:40 -07:00
Stephen Halter 0aff4a0440
Handle client and server aborts differently from eachhother (#2612)
* Trace when app aborts connection
* Improve exception messages
* Always abort connection with ConnectionAbortedException
* Add ConnectionContext.Abort(Exception)
2018-06-01 14:42:30 -07:00
Stephen Halter 28dad2b2b1
Unskip and fix race in ConnectionClosedEvenIfAppSwallowsException (#2632) 2018-05-31 15:39:25 -07:00
Stephen Halter 9e15b2bca4
Fix PipeReader consumption pattern [2.1] 2018-05-31 11:27:38 -07:00
Stephen Halter f80091a328 Merge branch 'release/2.1' into dev 2018-05-29 16:37:16 -07:00
Stephen Halter 5ec7bacdfe
Lower severity of AuthenticationException logs from SslStream handshake (#2614) 2018-05-29 16:27:16 -07:00
Stephen Halter b08163d3b7
[2.1.1] Use TaskCreationOptions.RunContinuationsAsynchronously a lot (#2618) 2018-05-29 16:07:41 -07:00
Stephen Halter f70088c2d9
Don't block so many threads in HeartbeatTests (#2610) 2018-05-23 15:58:33 -07:00
Chris Ross (ASP.NET) cf684a1e8f Re-enable IPv6 test 2018-05-23 09:11:10 -07:00
Stephen Halter a9d6cf13eb
Consistently handle connection resets (#2547) 2018-05-22 16:38:21 -07:00
Mike Harder 99a661edd6
Improve reliability of RequestTimesOutWhenRequestBodyNotReceivedAtSpecifiedMinimumRate (#2589)
- Fix race condition in test code
- Addresses https://github.com/aspnet/KestrelHttpServer/issues/2539
2018-05-18 16:25:01 -07:00
Mike Harder 1951ddf6ea
Improve reliability of MaxRequestBufferSizeTests.LargeUpload (#2586)
- Increase _dataLength from 20MB to 40MB to improve test reliability when using Sockets transport on Windows
- Addresses https://github.com/aspnet/KestrelHttpServer/issues/2225
2018-05-17 16:53:52 -07:00
Stephen Halter a13339dd5c
Re-enable ConnectionCountingReturnsToZero on non-macOS machines (#2585) 2018-05-17 11:54:58 -07:00
John Luo 336fe6ed90 Dispose base 2018-05-17 10:45:50 -07:00
John Luo ca25a4a63e React to Logging changes 2018-05-16 18:09:27 -07:00
John Luo 8da5f55832 React to logging changes 2018-05-15 17:16:49 -07:00
Stephen Halter f8f6f39f55
Wait off the ConnectionClosed token to stop tracking ConnectionCallback (#2574)
- The prior strategy of waiting for the pipe completed callbacks doesn't work
  because blocks are returned to the memory pool after the callbacks are fired.
2018-05-15 12:38:35 -07:00
Stephen Halter c683316253
Generate repetitive TransportConnection FeatureCollection code (#2548) 2018-05-14 17:20:48 -07:00
Stephen Halter 514917b9a8
Wait for input writer to complete before calling OnConnectionClosed (#2566) 2018-05-14 11:51:49 -07:00
Stephen Halter b64c0105b8
Use correct TaskCompletionSource ctor (#2567) 2018-05-11 14:57:20 -07:00
Stephen Halter b040e33b1b Merge branch 'release/2.1' into dev 2018-05-10 23:47:51 -07:00
Stephen Halter da21fc89cf
Handle exception in SocketConnection.Shutdown() (#2562) 2018-05-10 23:39:06 -07:00
Stephen Halter e6a88c1b9c
Relieve response backpressure immediately when closing socket (#2557)
* Relieve response backpressure immediately when closing socket
2018-05-10 17:13:57 -07:00
Stephen Halter f04118fca1 Merge branch 'halter73/merge-2.1-dev' into dev 2018-05-09 17:27:47 -07:00
Pranav K 80fa1d699d Upgrade to netcoreapp2.2
This reverts commit fe9da3c57b.
2018-05-09 16:43:15 -07:00
Ryan Brandenburg fe9da3c57b Revert "Don't touch product repos"
This reverts commit 8e9f05b902.
2018-05-08 16:52:48 -07:00
Ryan Brandenburg 350310aa96 Handle netcoreapp cases 2018-05-08 15:38:20 -07:00
Ryan Brandenburg 7db465dfc2 Upgrade to netcoreapp22 2018-05-08 15:38:20 -07:00
Stephen Halter c8d374af64 Merge branch 'release/2.1' into dev
# Conflicts:
#	build/dependencies.props
#	korebuild-lock.txt
#	src/Kestrel.Transport.Libuv/Internal/LibuvConnectionContext.cs
2018-05-07 15:47:20 -07:00
Stephen Halter 1a313715c8 Merge fixup 2018-05-07 15:00:57 -07:00
Nate McMaster 05d68efbae
Merge branch 'release/2.1.0-rc1' into release/2.1 2018-05-07 14:35:41 -07:00
Stephen Halter 5c17bff55d
Don't throw on FIN from upgraded connections (#2533)
* Allow app to drain request buffer after FIN
2018-05-04 16:21:07 -07:00
Stephen Halter 8b1fbad10e
Don't complete KestrelServer.StopAsync task inline (#2534) 2018-05-03 17:01:36 -07:00
Chris Ross (ASP.NET) b85ab0a7d2 Fix Sending100ContinueDoesNotStartResponse #2507 2018-05-02 09:29:36 -07:00
Chris Ross (ASP.NET) 9798508108 Merge branch 'release/2.1' into dev 2018-05-02 09:22:19 -07:00
Chris Ross (ASP.NET) 74d19cd4e4 Remove netcoreapp2.0 test coverage 2018-05-02 08:54:57 -07:00
David Fowler b23d9b7679
Decouple connection objects from the server (#2535)
- Making progress towards being able to use the connection objects on the client side.
2018-05-01 12:01:24 -07:00
Pavel Krymets de98f8c962
Use TaskCreationOptions.RunContinuationsAsynchronously a lot 2018-04-30 12:56:55 -07:00
Pavel Krymets 2f2a0047a1
React to pool cleanup (#2526) 2018-04-30 08:37:15 -07:00
Mike Harder cc29a503e6
Revert "Enable xUnit diagnostic messages (#2505)" (#2522)
- xUnit diagnostic messages were enabled in #2505 to help identify hung tests
- However, this also enables log messages for non-serializable theory data (https://github.com/aspnet/KestrelHttpServer/issues/2509), which adds noise to logs
- It doesn't seem possible to disable the "non-serializable data" messages but keep the "long-running test" messages
- Converting all tests to serializable theory data is expensive and complicates test code
- The best solution for now is to revert xUnit diagnostic messages to disabled, and re-enable when needed to identify hung tests
2018-04-24 17:24:43 -07:00
Mike Harder cc38a8d1fa
Remove unused theory data (#2519) 2018-04-24 14:47:39 -07:00
Chris Ross (ASP.NET) 075453b180 Fix Sending100ContinueDoesNotStartResponse #2507 2018-04-24 09:07:20 -07:00
Stephen Halter b0e1fa5e30 Fix connection abort 2018-04-23 17:01:49 -07:00
John Luo 1655a8fd6d Disable writing to console if exceptions are expected 2018-04-23 14:48:15 -07:00
Mike Harder f3afbeb2ae
Enable xUnit diagnostic messages (#2505)
- Required to log long-running tests
- Will help investigate https://github.com/aspnet/KestrelHttpServer/issues/2503
2018-04-18 17:14:52 -07:00
Chris Ross (ASP.NET) 333586d735 Clean up flaky MaxRequestBufferSize tests #2225 2018-04-17 09:11:17 -07:00
Stephen Halter 6fd09af374
Improve logging of request drain timeout (#2480) 2018-04-16 11:53:10 -07:00
Ben Adams e30a02cee5 Less StringValue struct copies for header checks (#2488) 2018-04-13 18:21:50 -07:00
John Luo 2d51d23697 Add file logging to functional tests 2018-04-13 14:53:57 -07:00
Stephen Halter 10f3b6863e
Avoid nullref in KestrelEventSource (#2483)
* Avoid nullref in KestrelEventSource
* Improve HostNameIsReachableAttribute to speed up test discovery
2018-04-12 17:29:34 -07:00
Chris Ross (ASP.NET) ee12c4fcf2 Downgrade HTTPs handshake failures to debug #1853 2018-04-12 09:25:44 -07:00
Chris Ross (ASP.NET) c6fa9793eb Make Protocols internal 2018-04-12 08:53:27 -07:00
David Fowler f6b2880369
Flow the ConnectionContext to the SNI callback (#2478) 2018-04-11 15:56:25 -07:00
Ryan Brandenburg 7e5104573e Skip flaky tests 2018-04-10 10:44:18 -07:00
Chris Ross (ASP.NET) 2ee0d6e337 Delay loading the dev cert #2422 2018-04-04 14:54:27 -07:00
Chris Ross (ASP.NET) 953496a970 Merge branch 'release/2.1' into dev 2018-04-04 13:44:56 -07:00
Chris Ross (ASP.NET) 9ea2c50068 Add SNI support #2357 2018-04-04 12:49:29 -07:00