Commit Graph

434 Commits

Author SHA1 Message Date
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
Brennan 833ddbe899
Fix broken build (#10541) 2019-05-25 14:47:22 -07:00
Ben Adams 44b2768307 Use Pipelines in PlaintextApp sample (#7227) 2019-05-25 12:18:14 -07:00
Justin Kotalik 3be11f6544
Increase stack size for IIS Inprocess (#10511) 2019-05-24 08:16:54 -07:00
John Luo 2c70498c13
Fix TLS protocols used in tests (#10483) 2019-05-23 20:07:39 -07:00
Chris Ross 156c4feb65
Put request trailers in a separate collection (#10410) 2019-05-23 09:00:39 -07:00
Chris Ross f5879cc0d5
Add new Negotiate Auth handler (#9831) 2019-05-22 06:14:50 -07:00
Nate McMaster 01a8798936
Update links and disable warnings related to tests that don't work in Helix (#10427) 2019-05-21 16:39:06 -07:00
Justin Kotalik 47d39501a5
Upload native symbols for ANCM shim. (#10297) 2019-05-21 08:34:28 -07:00
Stephen Halter 8d83e5352d
Disable request body data rate limits per HTTP/2 stream (#10355) 2019-05-17 18:25:41 -07:00
Justin Kotalik 2e89aa4aa6
Log stdout to event log on failure to start process for ANCM out of process (#10123) 2019-05-17 16:30:59 -07:00
Chris Ross 8b99354419
Expose the SslServerAuthenticationOptions via a callback #9349 (#10310) 2019-05-17 13:05:45 -07:00
John Luo a05d555f11
Revert Work around potential race in PipeWriter (#10315)
* Remove Flaky attributes

* Revert "Work around potential race in PipeWriter (#10165)"

This reverts commit bff1d0e6c4.
2019-05-17 01:20:52 -07:00
Nate McMaster dc90e11c7a
Move obj and bin directories into repo root (#10063)
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.

Changes:
* Set output path for build to artifacts/bin/$(ProjectName)/ 
* Set intermediate output path for build to artifacts/obj/$(ProjectName)/
* Cleanup .gitignore files (remove duplication between repo-root and tested gitignore files)
* Add code check which looks for project files that share the same name (could cause issues)
* Rename project files to have unique names (avoid race condition of build output)
* Update all locations which were hard-coded to expect bin/ and obj/ in the project directory
* Add overrides for tests which still assert test binaries exist in a given location relative to the source code
2019-05-15 13:44:55 -07:00
Nate McMaster 77e08c26d5
Replace all usages of RepositoryRoot with RepoRoot (#10267)
Preparing to adopt the Arcade SDK, which uses the shorter variable name instead
2019-05-15 12:00:19 -07:00
Stephen Halter bff1d0e6c4
Work around potential race in PipeWriter (#10165)
- 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-05-15 11:30:48 -07:00
Justin Kotalik 47575a08a5
Handle a few other potentially null properties (#10053) 2019-05-14 18:08:05 -07:00
Justin Kotalik 93af64823e
Move iisexpress test to other IIS machines (#10234) 2019-05-14 18:07:27 -07:00
James Newton-King a2c69b3d0c
HTTP2: Include END_STREAM with HEADERS frame to avoid empty DATA frame (#10219) 2019-05-15 10:56:06 +12:00
Nate McMaster b744814f06
Enhancements to Helix testing (#10007)
* Add Windows 7 and 8.1 testing on Helix
* Install SQL Server on-demand in Helix test queues
* Only install mssql on Windows runs
* Use exit /b
* Add targets to better support running helix locally
* Set maxretrycount to 2
* Handle IIS issues on win7/win8
* Make HelixPreCommand's fail the workitem
* Add a pre-generated test cert of IIS Express
* Update helix doc and ignore netsh script failures
* Fix bug in detecting Windows queues and disable Win 7 until we have queues ready
* Fix HttpSys functional tests on Helix
2019-05-10 15:04:16 -07:00
Stephen Halter 2a88a3dd65
Expand slow heartbeat warning (#10092)
- Mention thread pool starvation as a possible cause.
2019-05-09 14:44:26 -07:00
Ryan Nowak f45250ce5e Mark test as flaky 2019-05-09 13:44:16 -07:00
Justin Kotalik c22de8f39c
Add retries to helix failures and re-enable helix as a required workload (#9221) 2019-05-08 08:21:44 -07:00
Justin Kotalik 18faf4ad7a
Make inprocess not set CaptureStartupErrors and let ANCM handle it. (#9859) 2019-05-07 12:03:11 -07:00
Ryan Brandenburg 8fd86c38db
Make some tests Flaky (#9935)
Mark some tests flaky.
2019-05-06 15:33:02 -07:00
Andrew Stanton-Nurse e6db096af5
fix #9130 by fixing source revision embedding (#9902)
We removed our CommitHash property in order to use the built-in SourceRevisionId property but didn't update ANCM
2019-05-06 10:16:15 -07:00