- TraceSource is RID specific (see https://github.com/dotnet/corefx/issues/7480) and it
causes 2 dlls to end up in the output of every ASP.NET application. We don't even
use it anymore.
We need to attempt to consume start lines and headers even after
SocketInput.RemoteIntakeFin is set to true to ensure we don't close a
connection without giving the application a chance to respond to a request
sent immediately before the a FIN from the client.
- Without the _sync lock, if new data was produced as ConsumingComplete
was called, the next "await SocketInput" might never complete despite not
all data being examined.
- If more data is produced afterward, the stall would be prevented, but this
isn't always the case such as during the end of the request.
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
- This means connections become untracked sooner than before and not all blocks will
necessarily be returned.
- The assertion in the MemoryPoolBlock2 finalizer was weakened because FilteredStreamAdapter
will continue to use blocks after libuv stops tracking the associated connection.
- Make 100% sure we don't accept new connections after we dispose the listen socket by using a flag.
- Add a (currently unused) AllowStop method to KestrelThread. This is meant to be called from
listeners when we stop accepting new connections, but needs investigation to prevent flakiness.
- Even when safe handles are disposed explicitly, ReleaseHandle is sometimes
called on another thread which breaks uv_close.
- Ensure we close the UvAsyncHandle the uv loop so that the second call
to uv_run always completes without a timeout/Thread.Abort.
- Re-enable some tests. Add skip conditions for those that aren't passing.
- Make the time given for requests to complete gracefully configurable.
- Complete all async reads so calling code can re-check whether to stop
request processing and exit if in between requests.
- Don't wait for a FIN from the client since some browsers (e.g. IE & Chrome)
will take a long time to send one.
- Ensure all ConnectionFilters complete before the memory pool is disposed.
- Ensure blocks get returned even when a ConnectionFilter produces a failed read