Commit Graph

853 Commits

Author SHA1 Message Date
Justin Kotalik c1a3a2f10c
Change debug information format (#22734) 2020-06-09 18:03:19 -07:00
William Godbe 64f7f5a883
Unquarantine test that's not flaky anymore (#22664) 2020-06-09 10:21:07 -07:00
Doug Bunting ee80cd5ccd
Build native assets by default (#22611)
* Build native assets by default
  - #22556
  - make `-BuildNative` primarily useful when you want _only_ native assets
    - can also build `-Projects` with desktop `msbuild` using `-BuildNative`
  - remove `-ForceCoreMsbuild` option
  nit: extra `Remove-Item`s caused `MSBuild` function to do redundant work

* !fixup! Get `/bl` options working again
  nit: Place SiteExtensions .binlogs correctly wherever script is run from
* !fixup! Remove *.vcxproj from Servers build
  - native projects are built implicitly
* !fixup! Remove `-buildNative` from IIS build script
2020-06-08 12:39:10 -07:00
Brennan aeb28d4b83
Keep building packages that are marked packable (#22616) 2020-06-08 10:13:36 -07:00
Justin Kotalik 8a4af4f212
Enable control flow guard for IIS native dlls (#22480) 2020-06-05 17:34:54 -07:00
Pranav K f37fa30683
Add nullable annotations to Http.Abstractions, Http.Features, Connections.Abstractions (#22337)
* Add nullable annotations to Http.Abstractions, Http.Features, Connections.Abstractions

Co-authored-by: James Newton-King <james@newtonking.com>
2020-06-05 06:54:07 -07:00
Stephen Halter b454da498c
Merge branch 'master' into merge/release/5.0-preview6-to-master 2020-06-04 19:48:43 -07:00
James Newton-King ce32892387
Remove allocations by changing AsTask to GetAsTask (#22557) 2020-06-05 13:39:44 +12:00
Stephen Halter a50f94e8ff
Use default SslProtocols in Kestrel (#22437) 2020-06-04 16:44:27 -07:00
Matt Mitchell d8733c2a55
Build time changes (#22362)
* Build time changes
A few changes for build time
- Don't build tests with SkipTestBuild=true and use that for official
  build legs. This cuts 40%-50% off the msbuild invocations for build.
  The longest build leg drops by about 30 mins.
- Skip logging of some task parameters and their metadata.
  This reduces overall binlog size, which is a major contributor to
  build time.

Unfortunately, this does not mean we can yet turn binlogs back on. This
change can actually increase the overall binlog size due to logging of
more project started arguments. There is another optimization for this
in progress.

Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com>
2020-06-03 07:14:38 -07:00
James Newton-King 8009350176
Log message when connection reaches maximum concurrent streams (#22452) 2020-06-03 10:11:06 +12:00
Brennan b5e37866d5
Quarantine flaky tests (#22450) 2020-06-02 13:01:54 -07:00
Doug Bunting 256045729a
Add `SuccessfulTests` to ensure something runs in every non-Helix run (#22406)
* Remove extra `[SkipOnHelix]` attribute
- only need the one compiled into Microsoft.AspNetCore.Testing
- update the documentation to reflect this
  - nit: address Markdown warnings that VS Code showed

* Add `SuccessfulTests` to ensure something runs in every non-Helix runs
- #22241
- cleans up hundreds of warnings but leaves a couple for the Blazor tests assembly
  - see comments about xUnit runner command line in the new class
2020-06-02 12:19:28 -07:00
Youssef Victor eab9005e6b
Make H3StaticTable static class (#21705)
* Update H3StaticTable.cs

* Update QPackEncoder.cs

* Update Http3TestBase.cs

* Update EncoderStreamReader.cs

* Update QPackDecoder.cs

* Update Http3Stream.cs

* Use s_ prefix for static fields
2020-05-29 21:36:35 +00:00
Ryan Brandenburg 26ddefca5e
Quarantine cert test (#22320)
* Quarantine cert test
* Quarantine HttpsHelloWorld test
2020-05-28 14:56:57 -07:00
Huei Feng 3064728c05
Update Http3Connection lock objects to be readonly (#22263) 2020-05-28 14:18:14 -07:00
Pranav K dc29f03548
Replace usages of Assembly.CodeBase with Assembly.Location (#22258)
Fixes https://github.com/dotnet/aspnetcore/issues/14827
2020-05-27 12:01:34 -07:00
Doug Bunting 9d7ce5ea75
Quarantine a couple more tests (#22235) 2020-05-26 14:58:25 -07:00
Hao Kung a806ae62c3
Add helix-matrix.yml and windows arm 64 helix queue (#22002) 2020-05-23 17:08:18 -07:00
Doug Bunting fef33ad4a2 Quarantine tests based on recent failures 2020-05-22 11:13:07 -07:00
Pranav K 67b6be0337
Unquarantine CanVeryPhoneNumber test 2020-05-20 09:41:21 -07:00
David Fowler 02bf53de96
Small clean up and allocation removals (#21918)
- Remove IAsyncResult implementation
- Make AsyncAcceptContext derive from TaskCompletionSource
2020-05-19 08:18:54 -07:00
Chris Ross f712fd7c38
Quarantine flaky tests (#21957)
* Quarantine HttpsNoClientCert_NoClientCert

* Quarantine StopPropagation
2020-05-18 21:19:58 +00:00
Justin Kotalik 41eb22a0ac
Unquarantine tests (#21895)
* Unquarantine tests

* Update ShutdownTests.cs

* Update ShutdownTests.cs

* Update HubConnectionHandlerTests.cs

* Update src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs

Co-authored-by: Brennan <brecon@microsoft.com>

* Update HubConnectionTests.cs

Co-authored-by: Sébastien Ros <sebastienros@gmail.com>
Co-authored-by: Brennan <brecon@microsoft.com>
2020-05-18 19:04:48 +00:00
Ninds f908247222
Allow use of a default MemoryPoolFeature on ConnectionContext (#18579) 2020-05-15 14:42:52 -07:00
dotnet-maestro[bot] d5849f3534
[master] Update dependencies from dotnet/arcade dotnet/aspnetcore-tooling (#21630)
* Update dependencies from https://github.com/dotnet/arcade build 20200511.9
- Microsoft.DotNet.Arcade.Sdk: 5.0.0-beta.20228.4 => 5.0.0-beta.20261.9
- Microsoft.DotNet.GenAPI: 5.0.0-beta.20228.4 => 5.0.0-beta.20261.9
- Microsoft.DotNet.Helix.Sdk: 5.0.0-beta.20228.4 => 5.0.0-beta.20261.9

* Update dependencies from https://github.com/dotnet/aspnetcore-tooling build 20200514.6

Microsoft.AspNetCore.Mvc.Razor.Extensions , Microsoft.AspNetCore.Razor.Language , Microsoft.CodeAnalysis.Razor , Microsoft.NET.Sdk.Razor
 From Version 5.0.0-preview.5.20261.4 -> To Version 5.0.0-preview.6.20264.6

* Pre-emptively take -nobl change

* Disable binlogs in CI

* Fix build.sh to know about -nobl

* Align build.ps1|sh with latest Arcade parameters
- do not enable binary logs by default in CI builds
- leave `-binaryLog` and `-excludeCIBinaryLog` handling to eng/common/tools.ps1|sh
  - was unnecessary since `-bl /bl:{some name}` worked fine, ignoring OOMs

nit: document `-excludeCIBinarylog` a bit more

* Do not pass unknown options into CodeCheck.ps1

* Pass `-ci -nobl` into remaining CI build jobs

* Switch default TFM to `net5.0`

* Update missing project templates tfms

* Add more `-ci -nobl`
- needed because _all_ builds in the pipeline are implicitly CI builds
  - default-build.yml adds `-ci` when script wasn't explicit

* Default templates to net5.0

* PR feedback

* Update TFMs in explicit .nuspec files

* Update TFMs in test projects

* Update TFMs in test C# code

* Update TFMs in infrastructure files

* Future-proof a check for `net5.0` or later
- avoid comparisons involving `$(TargetFramework)` in .targets files
  - fine to compare it with `''` or `$(DefaultNetCoreTargetFramework)`

* !fixup! Undo a couple of earlier fixes
- remove a duplicate `$()` setting
- correct the one remaining versioned `#if` define
  - did not make it `#if NETCOREAPP` because benchmarks test numerous .NET Core TFMs

* Disable binary logs in CodeCheck.ps1

* Specify `-ci -nobl` just once when using `parameters.buildArgs`

* Restore `$binaryLog` default logic

Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com>
Co-authored-by: Will Godbe <wigodbe@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
2020-05-15 00:17:02 +00: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
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
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 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
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
Stephen Halter 100823af0d
Kestrel reloadable endpoint config (#21072) 2020-04-30 20:42:19 -07:00
Ben Adams 3af92e29b5
Make connection options parsing "safe" (#21004) 2020-04-29 16:23:56 -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
Ben Adams 5fc067266f
Make GetFinalTransferCoding "safe" (#21202) 2020-04-28 13:01:22 -07:00
Ben Adams 8b2f8088e9
Make GetKnownHttpScheme "safe" (#21204) 2020-04-28 12:58:38 -07:00
Stephen Halter 5ac720abb3
Don't count start line toward header size limit (#21272) 2020-04-28 10:36:45 -07:00
Cédric Luthi b73b2027cc
Improve exception when HTTP.sys can't register a prefix (#20718)
* Improve exception when HTTP.sys can't register a prefix

Propose an actionable solution and include a link to the documentation.

* Add SkipOnHelix attribute
2020-04-27 20:16:26 +00:00
Doug Bunting 54722a52b6
A quick collection of quick fixes (#20993)
* Quick fix: Simplify devBuilds.yml
  - remove an excess build step

* Quick fix: Move `SetupNugetSources` script invocations above `parameters.beforeBuild`
  - ensure NuGet.config is ready for all internal builds
  - remove now-duplicate `SetupNugetSources` invocations wherever default-build.yml is used

* Quick fix: Clean up SiteExtensions/build.cmd
  - quote all rooted paths
  - check `%ERRORLEVEL%` after every `CALL`
  - nits:
    - add a few more `ECHO` commands
    - wrap long lines

* Quick fix: Ensure `$(BuildNative)` is always set correctly
  - fix problems using `-all` or `/p:BuildAllProjects=true` without `-buildNative`
    - ensure `$(BuildNative)` is `false` where it's not supported
  - move some duplicated settings into eng/Common.props and `<Import />` the new file
  - remove now-duplicated parts of conditions using `$(BuildNative)`

* Quick fix: Consistently use `--build-*`
  - avoid `/p:Build*`  on the command line (except with eng/scripts/ci-source-build.sh)
  - nits:
    - remove now-useless `-buildNative` with `-all`
    - expand and correct a couple of related comments and messages

* Quick fix: Support `-all` together with `-projects`
  - remove need to specify `/p:BuildAllProjects=true`
  - nit: simplify some Boolean logic
2020-04-25 18:39:19 -07:00
Ryan Brandenburg 2589a63141
Quarantine ServerAcceptsRequestWithheaderTotalSizeWithinLimit (#21191) 2020-04-25 21:26:50 +00:00
Ben Adams f5fa16e998
Make HTTP/1.1 startline parsing "safe" (#20885) 2020-04-23 18:32:54 -07:00
Brennan 2cd6a13a56
Quarantine flaky test (#21156) 2020-04-23 14:17:34 -07:00
Brennan d775e9d959
Fixing build warnings (#21044) 2020-04-22 15:36:40 -07:00
Brennan f7c26b3130
Quarantine test that caused test abort (#21113) 2020-04-22 15:34:23 -07:00
Doug Bunting 2e970f8e4f Quarantine recent test failures
- see also #21080 for another recent failure
2020-04-21 22:27:15 -07:00
James Newton-King 42056d27d2
Remove flaky FlowControl_ParallelStreams_FirstInFirstOutOrder… (#21037) 2020-04-21 15:44:02 +12:00
David Fowler de63489aca
Add support for listening to arbitrary endpoints (#20892)
* Add support for listening to arbitrary endpoints
- This adds support for kestrel using arbitrary transports with any endpoint. This lets the consumer set an endpoint that flows all the way to the transport.
- Added tests

* Update src/Servers/Kestrel/Core/src/KestrelServerOptions.cs

Co-Authored-By: Chris Ross <Tratcher@Outlook.com>

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
2020-04-16 23:57:41 -07:00
Javier Calvarro Nelson 8e1e81ae78
[HTTPS] Update certificate strategy for Mac OS (#20022)
* Fixes and improvements for dotnet-dev-certs:
* Revamps the HTTPS developer certificate tool implementation.
  * It accumulated a lot of cruft during the past few years and that has made making changes harder.
* Separated the CertificateManager implementation into different classes per platform.
  * This centralizes the decision point of choosing a platform in a single place.
  * Makes clear what the flow is for a given platform.
  * Isolates changes needed for a given platform in the future.
* Moved CertificateManager to a singleton
  * No more statics!
* Updates logging to use EventSource
  * We didn't have a good way of performing logging as the code is shared and must run in multiple contexts and the set of dependencies need to be kept to a minimum.
  * Adding ETW allow us to log/monitor the the tool execution and capture the logs with `dotnet trace` without having to invent our own logging.
  * We can decide to write an EventListener in `dotnet-dev-certs` to write the results to the console output.
* Updates the way we handle the dev-cert in Mac OS to use the security tool to import the certificate into the store instead of using the certificate store.
2020-04-16 13:52:10 -07:00