Commit Graph

459 Commits

Author SHA1 Message Date
Justin Kotalik 689b052509
Convert TLS connection adapter to connection middleware (#11109) 2019-06-19 20:02:44 -07:00
Justin Kotalik 0b5d4baa07
Remove copy race for IIS projects (#11394) 2019-06-19 19:58:47 -07:00
Stephen Halter 5f2760e9bc
The TaskCompletionSource ctor takes Task*Creation*Options (#11294) 2019-06-19 11:44:43 -07:00
Nate McMaster 4fde84a7ad Replace KoreBuild with Arcade (#11122)
* Replace usages of $(CI) with $(ContinuousIntegrationBuild)

* Move RepoTasks to eng/tools/

* Remove dead code

* Update build.sh/ps1 to invoke Arcade instead of KoreBuild

* build/repo.props => eng/Build.props

* build/CodeSign.{props,targets} => eng/Signing.props

* build/repo.targets => eng/Build.props, eng/CodeGen.proj, and eng/AfterSolutionBuild.targets

* Remove AddAllProjectRefsToSolution.ps1

* Put selenium process tracking into artifacts/tmp/

* build/docker => eng/docker

* Move content from korebuild.json to global.json

* Remove cibuild.{sh,cmd} and update ci.yml

* Ensure vswhere detects BuildTools installations

* Remove sign check exclusions (Arcade does not support)

* list VS required components in global.json

* Update CodeCheck.ps1

* Update arcade (#11143)

* Fixups to broken build

* capture test results in xunit form
* attempt to fix code check
* restore before linux build
* remove duplicate signinfos

* More build fixes

* exclude node_modules from unique project check
* fixup signing props

* More build fixes

* Remove unused NoWarns
* Skip building site extension
* Suppress xunit color in console output
* Install x86 runtime

* Run KillProcesses.ps1 at end of build on CI

* activate env vars in codecheck.ps1

* Fix signing and generate build manifests

* Fixup code check and linux installers build

* Remove custom restore targets

* Import flaky test props

* Restore original manifest generation code and set warnAsErrors=false

* Alwasy restore the toolset

* More attempts at build fixes

* run restore before building deb/rpm packages
* pre-install Yarn.MSBuild
* Remove WIX workaround

* Attempt to fix RPM installers and x86 build

* Fix helix tests, java auto-detection, and code gen steps

* Globally disable MSBuild node resuse and capture MSbuild crash logs

* Cleanup build invocation for installers

* Set max time on xunit tests to 15 min

* Update helix-test.yml

* Fix Hosting tests

* Fix TestHost

* Fix Negotiate.Test

* Fix Mvc tests

* Capture results

* Fix Hosting tests

* Fix Kestrel tests

* Fix ServerComparison tests

* Fix DefaultBuilder functional tests

* Skip template tests

Need to run pack before running tests on mac/linux now

* Fix Identity test

* Fix ServerComparison tests

* Verify nginx installation on ubuntu

* Verify nginx installation?

* Try adding to path

* Try symlink

* Sudo?

* Woot it works

* Disable timeout

Template tests require more than 15 mins

* list env vars

* Use correct dotnet_home

* Prepent path instead

* Fix npmproj tests

* Fix CORS tests

* Debug signalr tests

* Debug signalr

* Capture bin

* Try building templates sequentially

* Debug signalr

* Cleanup

* Disable signalr npm tests

* Debug template test

* Try to fix templates again and make steps more reliable

* Cleanup

* Feedback
2019-06-19 10:03:38 -07:00
Kahbazi bff78bdd11 Remove use of null-conditional operator for logger (#6579) 2019-06-18 11:18:43 -07:00
Chris Ross 9077b38805
Implement IHttpResetFeature in Kestrel #10886 (#11300) 2019-06-18 11:14:40 -07:00
David Fowler b47b3e5ac6
Wait for server connection to end (#11256) 2019-06-17 17:42:16 +02:00
David Fowler ab52a1d3ed
Kestrel API clean up based on review (#11257)
- Make most of the sockets transport internal.
- Remove EndPoint from ListenOptions
2019-06-17 08:10:42 +02:00
Chris Ross bc5bee7477
Implement Http/2 CompleteAsync #10886 (#11193) 2019-06-15 09:01:45 -07:00
David Fowler 9466ec702f
Move TransportConnection to shared source (#11215)
- Remove it from Connection.Abstractions and make it shared source.
2019-06-14 11:48:41 -07:00
Stephen Halter e727101957
Work around potential race in PipeWriter Redux (#11065)
- Make sure we always await the last flush task before calling FlushAsync
  again instead of preemptively calling FlushAsync and checking to see
  if the ValueTask is incomplete before bothering to acquire the _flushLock
- This now acquires the _flushLock fore every call to Response.Body.Write
  whereas this only happened for truly async writes before.
- I don't think this is a big concern since this should normally be uncontested,
  and DefaultPipeWriter.FlushAsync/GetResult already acquire a lock.
2019-06-13 20:03:29 -07:00
Chris Ross 82d2b4f4d0
Fail on startup for Http/2 HTTPS on Mac #11061 (#11120)
* Use automatic resx #11054
2019-06-13 15:42:45 -07:00
David Fowler b0be780f1b
Remove dependency on pipe events in HttpConnection (#11132)
- Refactored the HttpConnection to not depend on OnReaderCompleted and OnWriterCompleted. Instead we use ConnectionClosed to detect the FIN that we propagate via ConnectedAborted.
- Fire ConnectionClosed when a FIN is received from both transports.
- Remove pipe completion from Http1Connection and Http1OutputProducer. Instead just return from request processing.
- Cancel the transport input on RawStream to yield the pending read. This is much more efficient than passing a cancellation token into everything (and more reliable)
- Fixed the RequestTests to not depend on inline scheduling
- Properly dispose things in the LibuvOutputConsumerTests
- Skipped flaky test
2019-06-13 10:30:23 -07:00
Brennan f989daca4b Target netstandard2.1 for SignalR client (#10540) 2019-06-12 21:59:56 -07:00
Ben Adams 396c54d874 Use correct examined (#11124)
Merging to unblock benchmarks quickly.
2019-06-12 10:44:27 -07:00
Nate McMaster 6c806f91b1
Add option for only packing runtime-specific packages (#11116)
* Add option for only packing runtime-specific packages
* Remove Microsoft.AspNetCore.Blazor.Templates.dll from the Blazor VSIX
* Cleanup implementation of ANCMSymbols packaging
2019-06-11 20:47:10 -07:00
Ben Adams d5f4f26437 Update Platform for api change (#11110) 2019-06-11 16:46:02 -07:00
Justin Kotalik 92b90fd986
Deflaking a lot of tests (#10960) 2019-06-11 14:10:06 -07:00
WuYafeng 40f0c28261 Resolve Kestrel default certificate store is invalid (#11074) 2019-06-11 11:58:16 -07:00
Justin Kotalik 7e92e4c280
Remove warning for content files issues (#11073) 2019-06-11 09:59:47 -07:00
dotnet-maestro[bot] a6bc6ce23d [master] Update dependencies from 3 repositories (#10939)
* Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190610.7
- Microsoft.EntityFrameworkCore.Tools - 3.0.0-preview7.19310.7
- Microsoft.EntityFrameworkCore.SqlServer - 3.0.0-preview7.19310.7
- dotnet-ef - 3.0.0-preview7.19310.7
- Microsoft.EntityFrameworkCore - 3.0.0-preview7.19310.7
- Microsoft.EntityFrameworkCore.InMemory - 3.0.0-preview7.19310.7
- Microsoft.EntityFrameworkCore.Relational - 3.0.0-preview7.19310.7
- Microsoft.EntityFrameworkCore.Sqlite - 3.0.0-preview7.19310.7

Dependency coherency updates
- Microsoft.AspNetCore.Analyzer.Testing - 3.0.0-preview7.19309.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.0.0-preview7.19309.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ActivatorUtilities.Sources - 3.0.0-preview7.19309.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.Abstractions - 3.0.0-preview7.19309.2 (parent: Microsoft.EntityFrameworkCore)
- et cetera

* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190610.2
- Microsoft.NET.Sdk.Razor - 3.0.0-preview7.19310.2
- Microsoft.CodeAnalysis.Razor - 3.0.0-preview7.19310.2
- Microsoft.AspNetCore.Razor.Language - 3.0.0-preview7.19310.2
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.0.0-preview7.19310.2

* Update dependencies from https://github.com/aspnet/Blazor build 20190610.1
- Microsoft.AspNetCore.Blazor.Mono - 0.10.0-preview7.19310.1
2019-06-10 23:12:23 -07:00
Justin Kotalik d7fc06af5e
Move IServerVariablesFeature to Http.Features (#11007) 2019-06-10 21:16:36 -07:00
Sébastien Ros 5561338cfe React to System.Text.Json namespace changes (#11053) 2019-06-10 20:42:24 -07:00
Nate McMaster 41ce223c1c
Replace Internal.AspNetCore.Sdk with Microsoft.DotNet.Arcade.Sdk (#10674)
* Update build.cmd to install .NET Core into $repoRoot/.dotnet instead of $repoRoot/.dotnet/x64
* Move restore sources from build/sources.props into eng/Versions.props (following arcade conventions)
* Remove usages of RuntimeFrameworkVersion in tests and build
* Update Blazor VSIX to use Arcade VSIX tools
* Rename Common.Tests to IIS.Common.TestLib and make it a test asset
* Remove custom versions props for ANCM installer code
* Remove duplicate references to xunit and remove usages of IsTestProject
* Remove duplicate references to Internal.AspNetCore.Analyzers
* Import Arcade.Sdk props and targets and remove custom versioning props
* Remove references to Internal.AspNetCore.Sdk
* Rename PackageLicenseType => PackageLicenseExpression
* Remove dependency on tasks in Internal.AspNetCore.Sdk, add ref to Internal.AspNetCore.BuildTasks as a temporary workaround
* Use Arcade's nuspec support
* Rename SignalR.Client.FunctionalTests to SignalR.Client.FunctionalTestApp
* Fixes for changes to property evaluation order
* Update BaseLineGenerator to netcoreapp3.0
* React to changes in evaluation order in RPM files and quirks in using <Exec> instead of <Run>
* Update Microsoft.Extensions.ApiDescription.Server to react to changes in Arcade packaging
* Workaround aspnet/AspNetCore#11009
2019-06-07 17:19:41 -07:00
Ben Adams f10680a37a Use one SequenceReader+Rewind rather than 2 (#8076) 2019-06-07 13:15:27 -07:00
David Fowler fcda7fd7d0
Added more logs to unix domain sockets test (#10943)
- The current theory is that the tests are experiencing starvation so add more logs to see if if anything in the application is running between the FIN being received on the server side and application code receiving the notification that the pipe was completed.
- Detect OperationAborted to avoid the connection reset log.
2019-06-06 10:46:37 -07:00
Andrew Stanton-Nurse 915cc74df8 fix #7548 by updating to v142 toolset (again) (#10904)
* fix #7548 by updating to v142 toolset (again)

* small note

* it's a compiler bug. let's just try

* you get a pass vc++... THIS TIME

* should no longer need v141 toolset!
2019-06-05 21:31:36 -07:00
Cory Nelson bc6f4b6034 Fix a write past the end of buffer when IntegerEncoder encodes to multi-bytes and does not have sufficient room to do so. (#10914)
Add some basic asserts to constrain parameters to HPACK spec.
Add some additional tests.
2019-06-05 20:15:16 -07:00
Justin Kotalik d3e90a7c07
Guarantee that ANCM package dlls are used for back compat tests (#10858) 2019-06-05 20:11:47 -07:00
Justin Kotalik f080c89e89
Add better error message when someone does single file publish in ANCM (#10871) 2019-06-05 20:10:43 -07:00
Justin Kotalik 214ca07b6c
Start using runtime properties to set StartupHook and EntrypointFilter (#10121) 2019-06-05 09:01:05 -07:00
David Fowler b6d8c96a98
Collect dumps for tests that seem to be flaky (#10830) 2019-06-04 09:16:08 -07:00
Nate McMaster be2f0cf8f2
Merge branch 'release/3.0-preview6' 2019-06-04 08:52:09 -07:00
Andrew Stanton-Nurse b9afd4a3b3
Merge pull request #6517 from Kahbazi/LogEventName#5
Remove nameof for event name
2019-06-04 07:56:14 -07:00
David Fowler 851a1eeb39
If libuv doesn't unwind gracefully log a warning (#10823)
- We added 3 critical logs to see if there was a resource leak happeing during the loop thread shutdown, turns out that during testing its very common for the thread to not end immediately because of the latency of thread pool dispatching (the latency between queuing and execution of the work item). As a result, we log a warning instead of an error.
2019-06-04 01:20:03 -07:00
David Fowler d001f5c519
Use the defaults that existed in Kestrel before (#10740) 2019-06-03 10:00:53 -07:00
David Fowler 400835e0b4
Remove Transport.Abstractions from existence (#10722) 2019-06-01 17:22:47 -07:00
David Fowler bb9b0cbfa5
Clean up some pipes things (#10728)
- Use the Kestrel memory pool
- Fix bad casts
2019-06-01 11:10:09 -07:00
Andrew Stanton-Nurse a96642f6fd Remove custom stream->pipe wrappers and make BodyReader/BodyWriter read-only (#10154) 2019-05-31 18:38:25 -07:00
David Fowler ecacf90c7f
Added support for unix domain sockets to the sockets transport (#10560)
- Added a test for UnixDomainSockets on both transports
2019-05-31 14:04:04 -07:00
Justin Kotalik b2fa47d379
Fix helix test (#10695) 2019-05-31 13:27:49 -07:00
Justin Kotalik 69139b5023
Log StartupTimeoutLimit failure to response (#10661) 2019-05-31 08:59:42 -07:00
David Fowler 04bf1bf32e
Implement new bedrock listener abstraction and re-plat Kestrel on top (#10321)
This is a massive set of changes to Kestrel to remove the existing pubternal transport layer and implement a public facing API for listeners and clients, see the details here #10308.

This change only has the server side pieces of the story as I don't want to add the client APIs without having ported SignalR to use them. Here are the highlights:

- Transport.Abstractions is empty (will be removed in a separate PR as it requires removing it from a ton of places)
- TransportConnection has been moved to Connection.Abstractions (we can decide if we need to consolidate with DefaultConnectionContext in a later PR)
- Added FileHandleEndPoint which allows binding to a file handle (could be a pipe or tcp handle)
ListenOptions has been gutted for most pubternal API and returns various types of binding information . The source of truth is the EndPoint instance.
- Cleaned up a bunch of libuv tests decoupling them from Kestrel.Core

## Breaking changes

- Removing pubternal API is itself a breaking change but one that we already planned to do.
- We've removed the ability to set the scheduling mode on Kestrel
- DisposeAsync was added to ConnectionContext 
- NoDelay was removed from ListenOptions. This has been moved to each of the transports. One major difference though is that it's no longer localized per endpoint but is global. We'd need a derived EndPoint type (or maybe extend IPEndPoint) to store both the socket options and the binding information.
2019-05-30 20:34:26 -07:00
Justin Kotalik 98d02bb617
Don't inject ANCM managed exception page into the static page (#10659) 2019-05-30 14:00:12 -07:00
Justin Kotalik 76b8ca56af
Use web.config environment variables to read if in Development (#10642) 2019-05-30 12:45:56 -07:00
Ben Adams 6f7a8ec4c0 Ensure PlatformBenchmark is compiled for .NET Core 3.0 (#9619) 2019-05-30 08:19:26 -07:00
Ben Adams 9f9c79bbe8 Use same code for Json Platform as TE (#7292) 2019-05-28 16:59:11 -07:00
Justin Kotalik 6e253996d9
Usability cleanup in IIS tests (#10460) 2019-05-28 14:28:33 -07:00
Dylan Dmitri Gray 9969e99ef4
Dylan/request throttle (#10413)
* request throttling -- initial implementation

* prevented semaphore leak; added xml docs

* small doc fixes

* reference document

* Added internals folder, added structured logging,

* removed typo'd dependency

* no default MaxConcurrentRequests; other polishing

* renamed SemaphoreWrapper->RequestQueue; cleanup

* moved SyncPoint; prevented possible semaphore leak

* adjusting feedback

* regen refs

* Final changes!
2019-05-27 14:46:14 -07:00
Justin Kotalik 2d1c14d5a9
Write Premain errors to the response and write different status codes (#10282) 2019-05-25 15:19:06 -07:00