Commit Graph

19241 Commits

Author SHA1 Message Date
John Luo 8fba9b0c90 Use ActivatorUtilities shared source 2020-05-13 22:23:30 -07:00
N. Taylor Mullen f9b4101852 Merge remote-tracking branch 'origin/release/3.1' 2020-05-13 17:27:44 -07:00
Pranav K b3c6c43789
Remove the need for a global lock when building or publishing a project (#21753)
* Change template test build and publish to not perform dotnet restore
* Remove locking requirements for build and publish
* Increase timeout for dotnet new operations since it's network bound
2020-05-13 11:40:42 -07:00
Doug Bunting de38479e5f
Improve build reliability (#20760)
* Improve build reliability
  - ensure `ResolveCustomReferences` target executes before packages are used
  - `ResolveAssemblyReferences` and `ResolveAssemblyReferencesDesignTime` targets run too late
    - e.g. failed builds of Microsoft.AspNetCore.WebUtilities or Microsoft.AspNetCore.Hosting when building from root
  - add `GetReferenceProjectTargetPathMetadata` for ease of use as well as reliability
    - avoids extra work to get existing metadata (ref/ projects execute no tasks in this target)

  nit: rename `@(ReferenceProjectMetadata)` -> `@(ReferenceProjectTargetPathMetadata)`

* Ensure `GetTargetPathMetadata` target runs with `$(TargetFramework)` set
  - ref/ projects all multi-target and otherwise no-op this target

* Revert "Fix various "Type or namespace not found" errors (#20736)"
  - change is no longer needed with other fixes in this PR

  This reverts commit 8218d6e0e7.
2020-05-13 11:31:09 -07:00
Ryan Nowak b194b6c90a
Fix use of precedence in endpoint routing DFA (#20801) (#21200)
* Fix use of precedence in endpoint routing DFA

Fixes: #18677
Fixes: #16579

This is a change to how sorting is use when building endpoint routing's graph of
nodes that is eventually transformed into the route table. There were
bugs in how this was done that made it incompatible in some niche
scenarios both with previous implementations and how we describe the
features in the abstract.

There are a wide array of cases that might have been impacted by this
bug because routing is a pattern language. Generally the bugs will involve a
catch-all, and some something that changes ordering of templates.

Issue #18677 has the simplest repro for this, the following templates
would not behave as expected:

```
a/{*b}
{a}/{b}
```

One would expect any URL Path starting with `/a` to match the first
route, but that's not what happens.

---

The change supports an opt-in via the following AppContext switch:

```
Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior
```

Set to true to enable the correct behavior.

---

The root cause of this bug was an issue in how the algorithm used to be
build the DFA was designed. Specifically that it uses a BFS to build the
graph, and it uses an up-front one-time sort of endpoints in order to
drive that BFS.

The building of the graph has the expectation that at each level, we
will process **all** literal segments (`/a`) and then **all** parameter
segments (`/{a}`) and then **all** catch-all segments (`/{*a}`). Routing
defines a concept called *precedence* that defines the *conceptual*
order in while segments types are ordered.

So there are two problems:

- We sort based on criteria other than precedence (#16579)
- We can't rely on a one-time sort, it needs to be done at each level
(#18677)

---

The fix is to repeat the sort operation at each level and use precedence
as the only key for sorting (as dictated by the graph building algo).

We do a sort of the matches of each node *after* building the
precedence-based part of the DFA, based on the full sorting criteria, to
maintain compatibility.

* Add test
2020-05-13 11:12:14 -07:00
Brennan 8ff1cb906d
Set certificate in some Kestrel tests to avoid global machine state (#21516) (#21542) 2020-05-13 11:11:02 -07:00
William Godbe 9e2a480925
[release/3.1] Add .version file to shared framework zip (#21548)
* Add .version file to shared framework zip

* Fix test
2020-05-13 10:59:55 -07:00
Pranav K 572c6fa4ce
Add retries when initial connection fails (#21711)
* Add retries when initial connection fails
2020-05-13 07:59:34 -07:00
William Godbe 7c58b8b767
Add .version file to shared framework zip (#21587)
* Add .version file to shared framework zip

* Fix test

* Test for proper version file depending on env
2020-05-12 17:10:02 -07:00
Will Godbe a14119a308 Merge remote-tracking branch 'internal/internal/release/3.1' into wtgodbe/315 2020-05-12 16:02:32 -07:00
N. Taylor Mullen 9a5d3c7640 Quarantine all ProjectTemplate tests until dotnet new lock issue is resolved.
- Investigation pending in https://github.com/dotnet/aspnetcore/issues/21748
2020-05-12 15:31:11 -07:00
N. Taylor Mullen b419ec07d6 Quarantine Microsoft.Extensions.SecretManager.Tools.Tests.SecretManagerTests.Clear_Secrets
- https://dev.azure.com/dnceng/public/_build/results?buildId=640828&view=ms.vss-test-web.build-test-results-tab&runId=19910360&resultId=108857&paneView=debug
2020-05-12 15:29:41 -07:00
David Fowler 5a0c097ad4
Added some kestrel event counters (#21649)
* Added some kestrel event counters
- Connection queue length - This is the amount of connections accepted and queued in the thread pool.
- Connection count - The number of connections
- Total connections - The total number of connections ever connected.
- Connection Rate - Connections per second

* Added TLS counters
- Current TLS handshakes
- Total TLS handshakes
- Failed TLS handshakes
- TLS handshake per second

* Added HTTP/2 queue length counter

* Improve the event information
- Add TLS version to handshake events
- Add HTTP version to request queue events
- Renamed HTTP/2 request queue length to http request queue


Contributes to #4769
2020-05-12 11:04:37 -07:00
John Luo dfb126da17
Quarantine flagged tests (#21723) 2020-05-12 09:00:20 -07:00
Pranav K 4b88074e30
Add a simplified version of ServerComponentRenderingTest.CanDispatchAsyncWorkToSyncContext (#21633)
ServerComponentRenderingTest.CanDispatchAsyncWorkToSyncContext is quarantined but since it's not running on Helix there isn't any history available for it. With all the moving
parts in the server test, it's unclear if it's a product vs test setup issue.

Authoring a more simplified test so we can track test history. Note that it's starting off as quarantined because there's no evidence that the product code isn't broken

Fixes https://github.com/dotnet/aspnetcore/issues/19413
2020-05-11 12:54:01 -07:00
Ben Adams a410ed4601
Use Pinned Object Heap for MemoryPool (#21614) 2020-05-09 15:26:35 -07:00
John Luo 81d269d6f3
Merge branch 'master' into merge/release/5.0-preview4-to-master 2020-05-08 14:48:06 -07:00
Pranav K 5d96b5de10
Template test infrastructure fixups (#21558)
* Template test infrastructure fixups

* Add timeouts to process launches and lock acquisitions
* Dispose launched processes
* Remove unused code
2020-05-08 13:27:17 -07:00
Javier Calvarro Nelson a67c14f5b0
[SPA] Fix register/profile paths (#21625) 2020-05-08 13:17:25 -07:00
Pranav K cacabfdaba
Fixups 2020-05-08 11:38:14 -07:00
Pranav K d0677559b7
Template test infrastructure fixups
* Add timeouts to process launches and lock acquisitions
* Dispose launched processes
* Remove unused code
2020-05-08 11:38:13 -07:00
Javier Calvarro Nelson 95a2208530
[Templates] Unquarantine some tests that have been passing for the past month (#21613)
Unquarantine some tests that have been passing for the past month
2020-05-08 09:57:23 -07:00
David Fowler 6aa13dde98
Use a dedicated thread for timers in rather than a Timer (#21490)
* Use a dedicated thread for timers in rather than a Timer
- This make it possible to still timeout various operations when there's thread pool starvation occurring.
- Print heartbeat slow if duration > interval
2020-05-08 01:07:36 -07:00
Javier Calvarro Nelson cdfa43bbe0
Avoid trying to fix the trusted root certificates (#21599) 2020-05-07 18:41:52 -07:00
Christian Wenz 64a0d0396e
Upgrade jQuery in samples to version 3.5.1 (#21577)
Fixes #21572
2020-05-07 14:42:14 -07:00
Andrew J Said b328f501fa
Log type of ObjectResult in ObjectResultExecutor (#21425)
* Log type of ObjectResult in ObjectResultExecutor

* Log only class name of FileResult, ObjectResult types
2020-05-07 12:55:57 -07:00
Pranav K 51f18b5652
Use Encoding.CreateTranscodingStream (#21509)
* Use Encoding.CreateTranscodingStream

Fixes https://github.com/dotnet/aspnetcore/issues/21243
2020-05-06 16:59:39 -07:00
Brennan 5fd4f87977
Avoid crashing in PollingFileWatcher (#21544) 2020-05-06 15:47:50 -07:00
Javier Calvarro Nelson a9d702624a
[Fixes #19666] [Components] Improve reliability of component quarantined tests (take 2) (#21499)
* Tries to increase the reliability of the tests by:
  * Trying to ensure that the server is up and running before connecting.
  * Retrying a connection attempt multiple times.
2020-05-06 10:12:06 -07:00
Doug Bunting fdb0372a67
Upgrade to more recent .NET SDK (#21017)
* Update SDK to preview.5.20251.2
  - includes support for the `net5.0` TFM
  - includes fix for `$(PublishDepsFilePath)`
  - includes fix for incorrect NU5118 warnings when `'$(PackAsTool)' == 'true'`
* !!temporary!! Suppress NU5129 warnings
  - build/ and buildTransitive/ naming conventions do not treat TFMs as equivalent
* Run `InjectRequestHandlerOnPublish` later
  - late enough for .deps file to exist i.e. after the `CopyFilesToPublishDirectory` target
  - `AfterTargets` is a bit flaky; use `BeforeTargets` with empty targets instead
* Always add `@(AssemblyAttribute)` items before they are processed
  - use `BeforeTargets="GetAssemblyAttributes"` for consistently throughout the repo
2020-05-05 21:59:15 -07:00
Brennan c9cdc4891a
Deflake TimeAwaitable finalizer test (#21523) 2020-05-05 19:45:08 -07:00
Javier Calvarro Nelson d6409371ae
[Templates] Diagnostics improvements and certificate fixes (#21493)
* Move template specific helpers out of shared and into templates
* More debug info, fix casing issues
* Keep test skipped
* Undo lock changes
* Standarize retry logic
* Tweak certificate validation code
2020-05-05 19:39:51 -07:00
Brennan 88dbfaa2ab
Set certificate in some Kestrel tests to avoid global machine state (#21516) 2020-05-05 19:18:37 -07:00
Chris Ross 32b2894610
Revert "Handle IIS OnCompleted callbacks later #17268 (#17756)" (#21525)
This reverts commit 11ecc62ea9.
2020-05-05 19:06:54 -07:00
Javier Calvarro Nelson 8be526a11b
[SPA] Updates SPA dependencies to make npm audit happy (#21324)
* Update react dependencies

* Update angular dependencies

* Update react-redux dependencies
2020-05-05 12:17:48 -07:00
Stephen Halter 4ebf695a98
Fix NRE in KestrelServerOptions.Listen*() (#21467)
* Fix NRE in KestrelServerOptions.Listen*()

* Fix tests
2020-05-05 03:04:28 +00:00
Kahbazi a4c45262fb
Add AuthenticationDisplayName to HttpSys (#21410)
* Add AuthenticationDisplayName to HttpSys

* update reference assembly

* Update Microsoft.AspNetCore.Server.HttpSys.netcoreapp.cs

* Trigger build
2020-05-02 09:11:51 -07:00
Ajay Bhargav B 3eb812a3f5
Quarantined dotnet user-secrets test (#21412) 2020-05-01 17:49:48 -07:00
Safia Abdalla 37da482969
Move Blazor Server template tests to new project (#21345) 2020-05-01 11:47:52 -07:00
Stephen Halter 100823af0d
Kestrel reloadable endpoint config (#21072) 2020-04-30 20:42:19 -07:00
Artak 9025f63fc3
Marked the Mono.WebAssembly.Interop package as non-shipping (#21367)
* Marked the Mono.WebAssembly.Interop package as non-shipping
2020-04-30 14:56:59 -07:00
John Luo 2fa0212285
Fix package overrides (#21329)
* Fix package overrides

* Add a test
2020-04-30 13:59:32 -07:00
Julius 63415b7dd2
Jfheins/improve error message (#21295)
* Add test for empty URL

* Throw if URL is empty, adjust test
2020-04-30 12:46:31 -07:00
Safia Abdalla 8271204317
De-quarantine BlazorServerTemplateWorks_IndividualAuth test (#21286) 2020-04-30 12:17:48 -07:00
Stephen Halter 49b4f418d5
Quarantine dotnet-user-secrets InitCommandTests (#21338) 2020-04-29 20:56:43 -07:00
Ben Adams 3af92e29b5
Make connection options parsing "safe" (#21004) 2020-04-29 16:23:56 -07:00
Artak 5d88e3365b
Disable documentation generation for a test project (#21340) 2020-04-29 15:33:36 -07:00
Javier Calvarro Nelson c10fea055c Revert "[Blazor] Unquarantine ComponentHubReliabilityTests (#21319)"
This reverts commit f36adf0805.
2020-04-29 11:09:38 -07:00
Javier Calvarro Nelson f36adf0805
[Blazor] Unquarantine ComponentHubReliabilityTests (#21319)
Fixes #19666
2020-04-29 10:04:26 -07:00
David Fowler 0fbf919d50
Use the RequestContext as the threadpool workitem (#21294)
- Avoids a task allocation (reuses the existing RequestContext allocation)
- Side benefit is that it's easier to see what things are queued into the threadpool for diagnostics!
2020-04-29 00:06:42 -07:00