Viktor Hofer [Tue, 12 Feb 2019 16:04:29 +0000 (17:04 +0100)]
Add a shared framework and host for global tools in helix submissions (dotnet/corefx#35208)
* Add a shared framework and host for global tools
Adding the shared framework and host from the .dotnet directory to the
helix submission to provide a runtime for global tools.
* Darc update from build '
20190212.3'
Commit migrated from https://github.com/dotnet/corefx/commit/
6315ab5343fd4a15f2a8fedef2506f60ff5328d5
Filip Navara [Tue, 12 Feb 2019 08:52:56 +0000 (09:52 +0100)]
Add tests for ResourceManager on custom Assembly type. (dotnet/corefx#34617)
Commit migrated from https://github.com/dotnet/corefx/commit/
24450dad74b0df3fc81026d7726b8441c41ae429
Matthijs Breemans [Tue, 12 Feb 2019 08:47:40 +0000 (09:47 +0100)]
fix: pointed ProjectUrl to the Github repository instead of the .net homepage (dotnet/corefx#35154)
Commit migrated from https://github.com/dotnet/corefx/commit/
ca6d54bea4b8c98c030e138adf41c652856d5f9f
Hugh Bellamy [Tue, 12 Feb 2019 08:46:36 +0000 (08:46 +0000)]
Fix NullReferenceException in AssociationAttribute (dotnet/corefx#35078)
Commit migrated from https://github.com/dotnet/corefx/commit/
584b2af6b5c20b2c0429e1ccd18e345f87d66e15
Hugh Bellamy [Tue, 12 Feb 2019 08:44:28 +0000 (08:44 +0000)]
Add ObjectModel tests (dotnet/corefx#35013)
Commit migrated from https://github.com/dotnet/corefx/commit/
596c31093b61a19c0a5d8dbda8b2954442b2bf6b
dotnet-maestro-bot [Tue, 12 Feb 2019 07:38:55 +0000 (23:38 -0800)]
Update ProjectNTfs, ProjectNTfsTestILC to beta-27412-00, beta-27412-00, respectively (dotnet/corefx#35255)
Commit migrated from https://github.com/dotnet/corefx/commit/
e902847cda101afbc6fc5397b03f3d4dcaec20e3
Sung Yoon Whang [Tue, 12 Feb 2019 06:05:40 +0000 (22:05 -0800)]
Merge pull request dotnet/corefx#35227 from dotnet/fix-eventsource-test
System.Runtime added to known test list in BasicEventSourceTest
Commit migrated from https://github.com/dotnet/corefx/commit/
e8e469653ca46e0499c925dfaaea796fc6f61cb0
Santiago Fernandez Madero [Tue, 12 Feb 2019 03:55:42 +0000 (21:55 -0600)]
Publish build logs as artifacts and produce a binlog to publish to helix (dotnet/corefx#35235)
* Publish build logs as artifacts and produce a binlog to publish to helix
* Flow Configuration property to arcade for logs to be binplaced correctly
Commit migrated from https://github.com/dotnet/corefx/commit/
0d5348f8836debced9d7f93a780e07016cf2e83c
Santiago Fernandez Madero [Tue, 12 Feb 2019 03:53:20 +0000 (21:53 -0600)]
Support building corefx in VS2019 (dotnet/corefx#35197)
* Support building corefx in VS2019
* PR Feedback and update docs for VS2019
Commit migrated from https://github.com/dotnet/corefx/commit/
fd736ea93d3b2b4bfa0288afdde34ebd9c9a680a
Santiago Fernandez Madero [Tue, 12 Feb 2019 03:52:40 +0000 (21:52 -0600)]
Remove Jenkins uap and all configurations legs (dotnet/corefx#35249)
Commit migrated from https://github.com/dotnet/corefx/commit/
23ec14f59138c41754238183d6fe216d7210bee2
Ahson Khan [Tue, 12 Feb 2019 02:37:51 +0000 (18:37 -0800)]
Make sure SequencePosition is saved as part of JsonReaderState (dotnet/corefx#35245)
Commit migrated from https://github.com/dotnet/corefx/commit/
53486e44427e096a4d7f672a0667980e8b65de63
David Shulman [Tue, 12 Feb 2019 01:27:04 +0000 (17:27 -0800)]
Fix HttpClient EKU tests (dotnet/corefx#35240)
A set of HttpClient tests related to ClientCertificates were always failing on my machine:
System.Net.Http.Functional.Tests.SocketsHttpHandler_HttpClientHandler_ClientCertificates_Test
* method="Manual_SendClientCertificateWithClientAuthEKUToRemoteServer_OK"
* method="Manual_SendClientCertificateWithNoEKUToRemoteServer_OK"
* method="Manual_SendClientCertificateWithServerAuthEKUToRemoteServer_Forbidden"
These tests would generate an exception:
>System.Net.Http.HttpRequestException: An error occurred while sending the request. --->
System.IO.IOException: The remote party requested renegotiation when AllowRenegotiation was set to false.
Similar to the tests failing and fixed in PR dotnet/corefx#35225, the CI machines don't have the test
root certificate installed. So, the tests weren't running in CI and the failures weren't noticed.
The root cause of the test failures is due to using SocketsHttpHandler. It is always setting
`SslStream.AllowRenegotiation` to false when first attempting to connect via HTTP/2. This is fine
if the connection is truely HTTP/2 since HTTP/2 doesn't support TLS renegotiation. However, if the
remote endpoint doesn't support HTTP/2 and thus connects with HTTP/1.1, then the SslStream should
not have AllowRenegotiation set to false. Client certificate scenarios frequently have the server
ask for the client certificate later in the connection process. So, TLS renegotiation is used. Opened
new issue dotnet/corefx#35239 to fix this in SocketsHttpHandler (or SslStream).
As part of fixing these tests, I refactored them into a single Theory test. But I had to workaround
complications due to using RemoteInvoke. I added a new RemoteInvoke overload to handling passing
an additional parameter.
Commit migrated from https://github.com/dotnet/corefx/commit/
0c2ccd172157e0ebf1957e1bbcd5f07786ad6e3d
Martin Baulig [Tue, 12 Feb 2019 01:21:54 +0000 (20:21 -0500)]
Fix ServerAsyncAuthenticateTest. (dotnet/corefx#35170)
In ServerAsyncSslHelper, pass a certificate validation callback to both
client and server.
Commit migrated from https://github.com/dotnet/corefx/commit/
a46d64a21591dd36292b0f6f0946fc55babced11
Jeremy Barton [Tue, 12 Feb 2019 01:07:05 +0000 (17:07 -0800)]
Make DEBUG builds always print chain errors (dotnet/corefx#35243)
Commit migrated from https://github.com/dotnet/corefx/commit/
24d614dd0b79e470163f0a392ee227a097199b35
Kevin Jones [Tue, 12 Feb 2019 00:41:07 +0000 (19:41 -0500)]
Ignore CTRequired when building an X509 chain. (dotnet/corefx#35246)
Commit migrated from https://github.com/dotnet/corefx/commit/
e8a88e8e0270977edc74019a282c73eab940b872
Santiago Fernandez Madero [Tue, 12 Feb 2019 00:31:12 +0000 (18:31 -0600)]
Reenable Ubuntu testing (dotnet/corefx#35248)
Commit migrated from https://github.com/dotnet/corefx/commit/
3ae95c99ffe82aaf087c64857ee6982a6c9e1ba6
Viktor Hofer [Mon, 11 Feb 2019 23:14:08 +0000 (00:14 +0100)]
Thread principal unauthenticated (dotnet/corefx#35112)
* Remove bind error for thread principal
* Disable threadpool test for uapaot
* Disable MailMessage reflection test on uapaot
* Disable ValueTask reflection tests on uapaot
* Guard System.TestEnvironment against ILC
* Revert AppDomain UnauthenticatedPrincipal change
Commit migrated from https://github.com/dotnet/corefx/commit/
0424e9db4628029b3308380f26312c79912bfb42
Kevin Gosse [Mon, 11 Feb 2019 23:08:56 +0000 (00:08 +0100)]
Fix DispatchProxy arguments with [Out] methods (dotnet/corefx#34583)
* Fix DispatchProxy arguments with [Out] methods
When calling a method with the [Out] argument, DispatchProxy incorrectly interprets it as a "out" method and sets the argument to null.
* Invert the condition to improve readability
Commit migrated from https://github.com/dotnet/corefx/commit/
5dbfbdf730c690dc3bad9c1d5febfe9eaf1f1e4a
William Godbe [Mon, 11 Feb 2019 22:32:37 +0000 (14:32 -0800)]
Merge pull request dotnet/corefx#35241 from wtgodbe/yaml30
Add CI runs for release/3.0
Commit migrated from https://github.com/dotnet/corefx/commit/
b9288bef72e950f544563be6b4ae49ebf3920a9c
Tomas Weinfurt [Mon, 11 Feb 2019 21:56:40 +0000 (13:56 -0800)]
basic support for PooledConnectionLifetime for HTTP2 (dotnet/corefx#35087)
* basic support for PooledConnectionLifetime
* rework Http2Connection expiration
* feedback from review
* add separate LifetimeExpired() and re-factor expiration checks.
* feedback from review
Commit migrated from https://github.com/dotnet/corefx/commit/
45f4518def7d416eb7bd481d118209de2e703429
Stephen Toub [Mon, 11 Feb 2019 21:28:51 +0000 (16:28 -0500)]
Switch LINQ over to using ThrowHelper pattern (dotnet/corefx#35213)
Commit migrated from https://github.com/dotnet/corefx/commit/
8750960d3fafa46a9b838c351e995a01fa8b599f
Pavel Krymets [Mon, 11 Feb 2019 21:06:09 +0000 (13:06 -0800)]
Improve the pipelines back pressure deadlock error (dotnet/corefx#33772)
Commit migrated from https://github.com/dotnet/corefx/commit/
45a92e78a980fc0a25f10b9d01b970a24521cf0c
Santiago Fernandez Madero [Mon, 11 Feb 2019 20:34:29 +0000 (12:34 -0800)]
Publish built packages to artifacts on PRs as well (dotnet/corefx#35232)
Commit migrated from https://github.com/dotnet/corefx/commit/
c4850a44862d1d3ccc1a47de2a99d0dea4f6fd7f
wtgodbe [Mon, 11 Feb 2019 20:31:16 +0000 (12:31 -0800)]
Add PR trigger
Commit migrated from https://github.com/dotnet/corefx/commit/
a60a0de7a9c74346fffa6e83f49a8d5d701cd227
Stephen Toub [Mon, 11 Feb 2019 20:13:27 +0000 (15:13 -0500)]
Merge pull request dotnet/corefx#35207 from dotnet/darc-master-
be4ecac4-471a-4e11-961e-
78e7628e8c2c
Update dependencies from dotnet/coreclr
Commit migrated from https://github.com/dotnet/corefx/commit/
09986997bfa24b73fcffbbdabe363cea60d53eff
wtgodbe [Mon, 11 Feb 2019 20:03:25 +0000 (12:03 -0800)]
Add CI runs for release/3.0
Commit migrated from https://github.com/dotnet/corefx/commit/
6232aedafca10eded415b2a291465189b2797ee9
Aaron Robinson [Mon, 11 Feb 2019 19:10:26 +0000 (11:10 -0800)]
Remove Obsolete attribute from Variant APIs (dotnet/corefx#35161)
* Remove Obsolete attribute from Variant APIs
Commit migrated from https://github.com/dotnet/corefx/commit/
eeaeb176be75e466ca8efc7b1c59b602ae37f1ec
Stephen Toub [Mon, 11 Feb 2019 17:01:27 +0000 (12:01 -0500)]
Adjust System.Diagnostics.Tracing for moved EventCounter
Commit migrated from https://github.com/dotnet/corefx/commit/
45b49ee8a56b0c53364e5c1a98c12b9d9cc8206d
David Fowler [Mon, 11 Feb 2019 17:32:52 +0000 (09:32 -0800)]
Reduce the amount of slicing in GetMemory/GetSpan/Advance (dotnet/corefx#35216)
- Avoid setting End on the writing segment until commit or until
we're moving to the next segment.
- This ends up making the pipe a little bigger but should make writing faster.
Commit migrated from https://github.com/dotnet/corefx/commit/
89adf53ea819029e44f9d27e56a81dc445233250
Kahbazi [Mon, 11 Feb 2019 16:53:27 +0000 (20:23 +0330)]
Use Cdotnet/corefx#7 is operator to remove additional cast (dotnet/corefx#32131)
Commit migrated from https://github.com/dotnet/corefx/commit/
b625822b92c3bc033304eab9730412202a3080f9
Tanner Gooding [Sun, 10 Feb 2019 03:40:27 +0000 (19:40 -0800)]
Removing double/float from the FormatterTests.Negative.cs tests.
Commit migrated from https://github.com/dotnet/corefx/commit/
f0b95b35c9a4f6af8733fdab2c1de193515438b6
Tarek Mahmoud Sayed [Thu, 31 Jan 2019 20:50:54 +0000 (12:50 -0800)]
Index and Ranges Changes
Commit migrated from https://github.com/dotnet/corefx/commit/
60362a5c15e6684afcfa5aff7a1f7f07a771a156
dotnet-maestro-bot [Mon, 11 Feb 2019 14:32:41 +0000 (06:32 -0800)]
Update ProjectNTfs, ProjectNTfsTestILC to beta-27411-00, beta-27411-00, respectively (dotnet/corefx#35226)
Commit migrated from https://github.com/dotnet/corefx/commit/
54d7c9a5e7e9f06687dd223fb13889bd528264e6
Sung Yoon Whang [Mon, 11 Feb 2019 10:01:42 +0000 (02:01 -0800)]
System.Runtime added to known test list in BasicEventSourceTest
Commit migrated from https://github.com/dotnet/corefx/commit/
fda971e6565b84c8605aa5bb19b3ffe2a8e139c6
David Shulman [Mon, 11 Feb 2019 04:37:47 +0000 (20:37 -0800)]
Fix test failures in CertificateValidationClientServer_EndToEnd_Ok (dotnet/corefx#35225)
This System.Net.Security Functional test was always failing on my machine.
But not failing in CI. The reason is that the CI machines don't have the
TestRoot certificate installed but my machine does.
So `Capability.IsTrustedRootCertificateInstalled()` is always false on the
CI machines but true on my machine.
Due to this test almost never running that codepath, the test got bad due to
some prior refactoring and the failure wasn't noticed until now. The test was
making an incorrect assumption about the contents and sizes of certificate
collections.
I fixed the test so that it validates what it should have been doing all along.
The validation is about checking that the received/built trusted chain is valid
and that the end-entity certificate is on that chain and is trusted by the root
on that chain.
Commit migrated from https://github.com/dotnet/corefx/commit/
224fa8e1e58b10b7fe1a5d3cfdedf2a1afbfe2e1
Santiago Fernandez Madero [Mon, 11 Feb 2019 02:09:40 +0000 (18:09 -0800)]
Disable Ubuntu16.04 and 18.04 legs from PRs until they are fixed (dotnet/corefx#35223)
Commit migrated from https://github.com/dotnet/corefx/commit/
bf5266034b2f5e39cf8f67057fcedd372686f72c
David Shulman [Sun, 10 Feb 2019 22:32:31 +0000 (14:32 -0800)]
Disable AuthProxy__ValidCreds_ProxySendsRequestToServer test on Nano (dotnet/corefx#35221)
The System.Net.Http AuthProxy__ValidCreds_ProxySendsRequestToServer test is
frequently failing on Nano. It is highly likely a test bug and not a product bug.
Contributes to dotnet/corefx#32809
Commit migrated from https://github.com/dotnet/corefx/commit/
d0ddc1c8202f1c9e2b9913a533c3aba3202d1f65
David Shulman [Sun, 10 Feb 2019 16:24:06 +0000 (08:24 -0800)]
Add NTLM feature detection and more tests (dotnet/corefx#35200)
This PR works toward the goal of our Enterprise Scenarios. I added logic in the Unix
PAL gssapi layer to detect whether the NTLM plugin is installed. This is useful both
in the product code (to return better exception messages) and the test code (to
skip NTLM tests if needed).
Refactored some of the Common System.Net.Configuration logic for tests. Added new
environment variable logic to separate between domain-joined and standalone server
environments.
Add new tests to validate NTLM end-to-end connectivity. Opened some new issues
discovered along with way regarding HTTP/2 and Windows authentication.
To run these new tests simply set the 3 environment variables to point to the
standalone windows server environment. For example, on Linux:
```
export COREFX_WINDOWSSERVER_HTTPHOST=somewindowsmachine.contoso.com
export COREFX_NET_SERVER_USERNAME=someusername
export COREFX_NET_SERVER_PASSWORD=somepassword
```
I have already deployed a standalone Windows server for these tests but
we're not ready yet to have the tests always run in CI.
Contributes to dotnet/corefx#34878
Commit migrated from https://github.com/dotnet/corefx/commit/
fe6f55b496489dbd02cdd207c0b1f9112b560763
Stephen Toub [Sun, 10 Feb 2019 02:26:46 +0000 (21:26 -0500)]
Don't force-allocate x509ChainPolicy collections in X509Chain.Build (dotnet/corefx#35187) (dotnet/corefx#35209)
Previously X509ChainPolicy would always allocate its collections, but now it lazily allocates them. However, X509Chain.Build is forcing them to be allocated even when they're not needed. Stop doing that.
Commit migrated from https://github.com/dotnet/corefx/commit/
5b8fe73971fb7885fa7afc08ceec28df9a695a23
Stephen Toub [Sun, 10 Feb 2019 00:32:15 +0000 (19:32 -0500)]
Reduce memory allocation in Http2Stream (dotnet/corefx#35179)
* Reduce memory allocation in Http2Stream
- Pool response buffers via ArrayPool
- Don't allocate a separate sync object
- Shrink the size of a few types
* Address PR feedback
Commit migrated from https://github.com/dotnet/corefx/commit/
24aa561da2d0632dc284bc230b1147ace848d22b
David Fowler [Sat, 9 Feb 2019 23:52:29 +0000 (15:52 -0800)]
Added methods to copy to and from streams (dotnet/corefx#35212)
- Added Stream.CopyToAsync(PipeWriter)
- Added PipeWriter.CopyFromAsync(Stream)
- Added PipeReader.CopyToAsync(stream)
Commit migrated from https://github.com/dotnet/corefx/commit/
603af6f2d84d9970a063bb96fbd4a2461ee3de42
dotnet-maestro-bot [Sat, 9 Feb 2019 20:41:54 +0000 (12:41 -0800)]
Update CoreFxOptimizationData, ProjectNTfs, ProjectNTfsTestILC to master-
20190208.1, beta-27408-00, beta-27408-00, respectively (dotnet/corefx#35168)
Commit migrated from https://github.com/dotnet/corefx/commit/
f26fb9c2a6fe52a5cdb9309f1b7dbe14e1e667b0
Stephen Toub [Sat, 9 Feb 2019 12:11:58 +0000 (07:11 -0500)]
Revert "Don't force-allocate x509ChainPolicy collections in X509Chain.Build (dotnet/corefx#35187)" (dotnet/corefx#35206)
This reverts commit dotnet/corefx@
147e167610b9480f5a86eb50ad36006352f4a545.
Commit migrated from https://github.com/dotnet/corefx/commit/
87de1b25d5c71283cc8c53d90fdace453d0916e7
Santiago Fernandez Madero [Sat, 9 Feb 2019 04:15:27 +0000 (20:15 -0800)]
Remove Fedora from helix test queues to unblock PRs (dotnet/corefx#35192)
Commit migrated from https://github.com/dotnet/corefx/commit/
bb6dc56247e496f5a0cf951abb1097e4851fde48
Sung Yoon Whang [Sat, 9 Feb 2019 03:58:24 +0000 (19:58 -0800)]
move EventCounter to shared CoreLib (dotnet/corefx#35183)
Commit migrated from https://github.com/dotnet/corefx/commit/
acb7df13e9fe7c91117a7ae5a85044b9caee03b8
Stephen Toub [Sat, 9 Feb 2019 02:24:51 +0000 (21:24 -0500)]
Don't force-allocate x509ChainPolicy collections in X509Chain.Build (dotnet/corefx#35187)
Previously X509ChainPolicy would always allocate its collections, but now it lazily allocates them. However, X509Chain.Build is forcing them to be allocated even when they're not needed. Stop doing that.
Commit migrated from https://github.com/dotnet/corefx/commit/
147e167610b9480f5a86eb50ad36006352f4a545
Stephen Toub [Sat, 9 Feb 2019 02:24:31 +0000 (21:24 -0500)]
Fix BigInteger parsing of substring span (dotnet/corefx#35185)
Commit migrated from https://github.com/dotnet/corefx/commit/
73a3cf567a7b02ce4f984f5b791da19812fd8aa9
David Fowler [Sat, 9 Feb 2019 01:40:42 +0000 (17:40 -0800)]
GetMemory/GetSpan takes a minimum size (dotnet/corefx#35186)
- We changed the contract of IBufferWriter to be more usable by making the sizeHint a minimum size. If the caller requests memory over the max pool size then we allocate.
- In the default case where we're using the shared array pool, we let the underlying pool handle this (it does internally).
Commit migrated from https://github.com/dotnet/corefx/commit/
c45d88d5a1326501e31c02e508efb352a492fb59
Stephen Toub [Fri, 8 Feb 2019 20:09:50 +0000 (15:09 -0500)]
Remove a lot of allocation from SslStream's handshake (dotnet/corefx#35091)
* Remove a lot of allocation from SslStream's handshake
This makes a sizeable dent in the allocation incurred as part of SslStream's handshake (AuthenticateAsClient/Server{Async}), though mainly on Windows; many of these changes also impact Unix, but on Unix there's also substantially more allocation, so the relevant percentage impact is less.
Main changes:
- X509Certificate2.RawData. This was being accessed by SslStream in order to store the byte[] away in case the RemoteCertificate property was accessed, in which case it would use it to instantiate an X509Certificate2. That, however, was resulting in lots of sizeable byte[]s being allocated. We can instead just instantiate an X509Certificate2 from the original, and while that entails a few additional small allocations, it's a sizeable reduction, and we'd eventually need the cert anyway if the property is accessed.
- X509ChainPolicy. Every time Reset was called, it would allocate several new collections, but they often weren't used. Made them lazy.
- X509 object finalization. A bunch of X509-related objects were being left for finalization. Those are now aggressively disposed.
- ChainPal.GetChainStatusInformation: every call was P/Invoke'ing to get a string error message for a handful of prechosen error codes... we can just get the strings once upfront and avoid allocating them each time.
- OidCollections. A bunch of these are created but not actually populated, and each time one is created it was allocating a new List. Changed to just have it be built around an array.
- SecPkgContext classes. These have been converted to blittable structs, avoiding the associated allocations and marshaling costs, e.g. SecPkgContext_ApplicationProtocol would end up allocating a byte[] along with the instance itself.
- PtrToStructure. When QueryContextAttributes was being called, in many cases PtrToStructure was being used. This has been cleaned up, to avoid the marshaling and just use spans / casting.
- SecurityBuffer[] arrays. Lots of code was written in terms of SecurityBuffer[], which meant lots of operations allocating these. However, they were never larger than three items. We now just stack allocate spans for them.
- Overloads taking both SecurityBuffer and SecurityBuffer[]. I believe because of the arrays, there were some cases where methods would take both a SecurityBuffer argument and a SecurityBuffer[] argument, with one and only one non-null. Now that we're just passing around allocation-free spans, this has been cleaned up.
- GCHandles and GCHandle[]. Multiple methods were allocating arrays of GCHandles, and then one GCHandle.Alloc (not a managed allocation, but also not free) per SecurityBuffer. Now that we're known to be limited to at most three, we just used fixed (even if we don't actually have three), avoiding the need for the arrays and for the GCHandle.Alloc, which is more expensive than fixed.
- SecBuffer[] arrays. Several places were allocating a SecBuffer[]; we can just stackalloc a struct. These are all limited by the number of SecurityBuffers passed around, which is inherently small (<= 3 in the current code).
- SecureChannel.EnsurePrivateKey. It was always forcing a certificate's Thumbpring into existence, even though it was rarely needed.
- SecureChannel.AcquireClientCredentials. It was always forcing a List into existence, even if it wasn't needed.
- SslAuthenticationOptions. This internal type had several fields for delegates that were never used. Removed.
- Span.ToArray. In several places utilize span to create an array from a pointer/length rather than allocating the array and Marshal.Copy'ing. This is mostly for readability.
- Also cleaned up a few things, like using ?.Dispose across System.Net.Security.
- Protocol version strings. On Unix we were getting the protocol version constant string from the native string, allocating a managed string for it, and then comparing it against the set of known constant strings. We don't need to do that.
There's still more that can be done. On Windows, the two big remaining sources of allocation are for byte[]s created for data to send/receive in the handshake, and that will hopefully be addressed by work to combine SslStream/SslStreamInternal/SslState and to rewrite them to use async/await, and the allocation of the actual SecurityBuffers, which should be fairly straightforward to convert to structs (albeit with some care, as they're mutated as they're passed around). On Unix, there's a ton more allocation, in particular as part of X509Chain building, and that should be investigated separately as part of an effort to improve performance there.
* Move SecurityBuffer to be Windows-only and make it a struct
* Rename several files
* Fix netstandard build of SqlClient
Commit migrated from https://github.com/dotnet/corefx/commit/
3c30357d51b96339021b4ee52f38445c31248bb2
David Fowler [Fri, 8 Feb 2019 20:01:35 +0000 (12:01 -0800)]
Use the array pool by default instead of going through the MemoryPool (dotnet/corefx#35171)
* Use the array pool by default instead of going through the MemoryPool<T> abstraction.
* Math.Clamp isn't in netstandard2.0
* Some cleanup based on PR feedback
- Keep setting MemoryPool<byte>.Shared by default
- Fixed the pipelines solution file
Commit migrated from https://github.com/dotnet/corefx/commit/
e58f923745d37a5ce5a23ce838833d1e3455e62a
Matt Mitchell [Fri, 8 Feb 2019 16:47:54 +0000 (08:47 -0800)]
Merge pull request dotnet/corefx#35158 from dotnet/mmitche-patch-1
Move coreclr dependencies to product
Commit migrated from https://github.com/dotnet/corefx/commit/
ad7eef57b5f8ecbfdb2c17b5d1aa631b025449a5
Viktor Hofer [Fri, 8 Feb 2019 12:56:54 +0000 (13:56 +0100)]
Remove InternalsVisibleTo from S.C.C.Registration (dotnet/corefx#35144)
* Remove InternalsVisibleTo from S.C.C.Registration
* Disable failing uapaot tests
Commit migrated from https://github.com/dotnet/corefx/commit/
ef534fccfbafe75a75f88a5d78d6bfddcf44f2f3
Maryam Ariyan [Fri, 8 Feb 2019 02:49:42 +0000 (18:49 -0800)]
Add SwitchExpressionException (dotnet/corefx#34954)
* Add SwitchExpressionException
Fixes: dotnet/corefx#33284
* Apply PR feedbacks
* Type just added to .net core 3.0
* quick cleanup
* Add test in BinaryFormatterTestData
* Updated the APIs for SwitchExpressionException
* Remove IsSerializable condition
Commit migrated from https://github.com/dotnet/corefx/commit/
3685052201c95462f210582be9fe380baf1b902e
dotnet-maestro-bot [Fri, 8 Feb 2019 01:24:13 +0000 (17:24 -0800)]
Update CoreFxOptimizationData, ProjectNTfs, ProjectNTfsTestILC to master-
20190207.3, beta-27407-00, beta-27407-00, respectively (dotnet/corefx#35142)
Commit migrated from https://github.com/dotnet/corefx/commit/
719e29d92e3e0a0e6f6295d1669cd9684fca028d
0xflotus [Fri, 8 Feb 2019 01:23:16 +0000 (02:23 +0100)]
fixed small errors (dotnet/corefx#35162)
* Update cross-platform-cryptography.md
fixed small errors
* Update adding-api-guidelines.md
* Update package-projects.md
* Update project-guidelines.md
* Update BitArray.cs
Commit migrated from https://github.com/dotnet/corefx/commit/
2d55a9b8331c58370e59d388ad0bddb0f2ec9199
Geoff Kizer [Fri, 8 Feb 2019 00:21:04 +0000 (16:21 -0800)]
Merge pull request dotnet/corefx#34630 from geoffkizer/http2tests
HTTP2: Modify HTTP2 tests to run against platform handlers as well
Commit migrated from https://github.com/dotnet/corefx/commit/
073bf4793f49e46f3a07e865b82045724ccc3641
Tanner Gooding [Thu, 7 Feb 2019 23:00:35 +0000 (15:00 -0800)]
Upgrading Roslyn to 3.0.0-beta2-final (dotnet/corefx#35134)
* Upgrading Roslyn to 3.0.0-beta2-final
* Updating the dotnet sdk to 2.2.103
* Fixing a netcoreapp reference in ref/System.Threading.Channels
Commit migrated from https://github.com/dotnet/corefx/commit/
c2bbb6a5ee5ff67e5e8353e154d7b4c4f2f83143
Krzysztof Wicher [Thu, 7 Feb 2019 18:41:44 +0000 (10:41 -0800)]
Fix casing of files to get closer to ./build.sh -allConfiguration working on linux (dotnet/corefx#35085)
* Rename directories to use CamelCasing
* Fix CsProj files to match file names and their casing
* fix couple of Compile items which were not in csproj file
Commit migrated from https://github.com/dotnet/corefx/commit/
8c5260061b11323dfd97fbab614d54402405513f
matejskubic [Thu, 7 Feb 2019 18:36:36 +0000 (19:36 +0100)]
Process.Close check for null before using variable (dotnet/corefx#32792)
* Process.Close check for null before using
Fix when Process.Close throws Exception on redirected StandardOutput or StandardError.
Steps to reproduce
process.Start
process.BeginOutputReadLine
process.Start
process.Dispose
* Address PR feedback
Commit migrated from https://github.com/dotnet/corefx/commit/
ff8f3149fc7aa1362b35b15da315646c3bb48dc9
Hugh Bellamy [Thu, 7 Feb 2019 02:14:53 +0000 (02:14 +0000)]
Remove dead code from Composition.Hosting (dotnet/corefx#35131)
Commit migrated from https://github.com/dotnet/corefx/commit/
4d180567e9dc5500006b58480184f0dcfe967c1e
Stephen Toub [Thu, 7 Feb 2019 00:49:16 +0000 (19:49 -0500)]
Fix failing xNodeBuilder tests (dotnet/corefx#35140)
1 of the tests is failing because float.MaxValue.ToString() changed and it had hardcoded the previous value.
4 of the tests failed because it was doing a string comparison on the type name of Encoding.UTF8, which a while ago changed to be a sealed derived type and thus is no longer exactly "System.Text.UTF8Encoding". My only explanation for why these just started failing is that we weren't previously running them? Might have something to do with the lack of a Configurations.props file, which I had to add in order to run the tests locally.
Commit migrated from https://github.com/dotnet/corefx/commit/
a27099da194460992a9b8c098f1b5f07837577e0
Kevin Jones [Wed, 6 Feb 2019 22:55:44 +0000 (17:55 -0500)]
Allow ephemeral CNG keys to be used when signing a CMS.
Commit migrated from https://github.com/dotnet/corefx/commit/
f664e3d68c1699b218b8b94d2208bd0c5c5f678f
Maxim Dobryakov [Wed, 6 Feb 2019 22:04:40 +0000 (01:04 +0300)]
Fix overflow exception in StringParsingHelpers (dotnet/corefx#35098)
* Replace all 'int' fields to 'long' in structures related to 'StringParsingHelpers' class because some parsed values can be great than 'int.MaxValue' (dotnet/corefx#34719)
* Fix type of 'IPGlobalStatisticsTable.DefaultTtl' property
Commit migrated from https://github.com/dotnet/corefx/commit/
2f8f6f1be75ea2cc8132e18de5fe8375006ca36f
Geoff Kizer [Wed, 6 Feb 2019 19:10:02 +0000 (11:10 -0800)]
fix merge issues and some test cleanup
Commit migrated from https://github.com/dotnet/corefx/commit/
340d2ac71afcbb6f9ea220e7549fcf8247995678
Geoff Kizer [Thu, 17 Jan 2019 11:11:35 +0000 (03:11 -0800)]
add basic GOAWAY tests and connection shutdown handling
Commit migrated from https://github.com/dotnet/corefx/commit/
449a47ba2c6dbb568692d554787405dde7d14d8e
Geoff Kizer [Wed, 9 Jan 2019 11:37:45 +0000 (03:37 -0800)]
test fixes for various handlers and some additional tests
Commit migrated from https://github.com/dotnet/corefx/commit/
d1c85401a2d9d727e4f87dab62277d569cbc09c5
dotnet-maestro-bot [Wed, 6 Feb 2019 21:29:41 +0000 (13:29 -0800)]
Update BuildTools, ProjectNTfs, ProjectNTfsTestILC to preview1-03706-01, beta-27406-00, beta-27406-00, respectively (dotnet/corefx#35139)
Commit migrated from https://github.com/dotnet/corefx/commit/
76cc535c26b8783c5c99e81e78ec9ce1b18410b6
Geoff Kizer [Wed, 9 Jan 2019 11:21:24 +0000 (03:21 -0800)]
make HTTP2 tests run for platform handler as well
Commit migrated from https://github.com/dotnet/corefx/commit/
686bf6eb6973713f4845fbb874b53f81ea16e50b
Stephen Toub [Wed, 6 Feb 2019 18:29:12 +0000 (13:29 -0500)]
Add SocketErrorPal mapping for EPERM (dotnet/corefx#35133)
Commit migrated from https://github.com/dotnet/corefx/commit/
470a7ffeb5badcd465f88b3fb1b2444fd2f5c69d
Stephen Toub [Wed, 6 Feb 2019 17:29:07 +0000 (12:29 -0500)]
Merge pull request dotnet/corefx#35069 from dotnet-maestro-bot/master-UpdateDependencies
Update ProjectNTfs, ProjectNTfsTestILC to beta-27406-00, beta-27405-00, respectively (master)
Commit migrated from https://github.com/dotnet/corefx/commit/
ccc5315d1e99eedc1e5560ef1d225ba136fd2b4f
Jose Perez Rodriguez [Wed, 6 Feb 2019 16:43:54 +0000 (08:43 -0800)]
Removing UAPvNext Assets from OOB packages (dotnet/corefx#35119)
Commit migrated from https://github.com/dotnet/corefx/commit/
c38c10d28e223aeea2f363a6ef0bf4a63d00a776
Dan Moseley [Wed, 6 Feb 2019 15:53:59 +0000 (07:53 -0800)]
Some test fixes (dotnet/corefx#35092)
* Disable Media test on NETFX
* Fix S.R.E for Uapaot
* Disable varargs for PN
* missing method 'AssemblyLoadContext..ctor(bool)
* IO test
* Fix UapAot RuntimeInformation tests
* Set correct tfm for AppDomainTests
* Merge driveonly tests into one
* Revert math
Commit migrated from https://github.com/dotnet/corefx/commit/
0a751af9afe28042a720411925e6e6c55bdc10cc
Hugh Bellamy [Wed, 6 Feb 2019 15:00:06 +0000 (15:00 +0000)]
Add more ComponentModel.Annotations tests (dotnet/corefx#35052)
* Add more ComponentModel.Annotations tests
* Address PR feedback
Commit migrated from https://github.com/dotnet/corefx/commit/
c13a641e12c23c3ac07a78964478a9a4b3137cc2
Filip Navara [Wed, 6 Feb 2019 14:58:10 +0000 (15:58 +0100)]
Test more invalid values for ThreadPool.[Unsafe]RegisterWaitForSingleObject (dotnet/corefx#34818)
* Test more invalid values for ThreadPool.[Unsafe]RegisterWaitForSingleObject.
* Add checks for argument names in ArgumentOutOfRangeException.
* Disable failing test on NetFX.
Commit migrated from https://github.com/dotnet/corefx/commit/
41948bf0fd29ad5b668f6479ae329c91aeb31f32
Stephen Toub [Wed, 6 Feb 2019 14:55:45 +0000 (09:55 -0500)]
Fix CountdownEvent.Wait to respect underlying event's status (dotnet/corefx#35024)
A common pattern with CountdownEvent is:
```C#
ce.Reset(count);
.. // launch count operations that'll all call ce.Signal()
ce.Wait();
```
and to use that repeatedly. Reset is explicitly not a thread-safe operation, but in a pattern like this, it should be acceptable as long as the only operations signaling the event are those launched here, since Wait should only return when they've all completed. However, CountdownEvent.Wait is currently checking CountdownEvent.IsSet, which returns true if the count has reached 0, and the CountdownEvent.Signal method first decrements the count and the sets the underlying event if it reaches 0. That means there's a window where the count is 0 but the event hasn't been set, which means if Wait is called in that window, it could return successfully even though an operation is still in flight invoking Signal, which then in turn is problematic as that could race with a subsequent call to Reset.
This fixes that by checking this._event.IsSet instead of this.IsSet.
Commit migrated from https://github.com/dotnet/corefx/commit/
66403fb0e4c9e3c05e23db23c04742b8a50dbe0a
Stephen Toub [Wed, 6 Feb 2019 04:13:26 +0000 (23:13 -0500)]
Finish removing Environment from corefx
Commit migrated from https://github.com/dotnet/corefx/commit/
5d43b70e75fc9419d9a39ca7d8f4e7143c74b235
Hugh Bellamy [Wed, 6 Feb 2019 03:43:14 +0000 (03:43 +0000)]
Cleanup ObjectModel code (dotnet/corefx#35047)
* Cleanup ObjectModel code
* Improve parameter names
Commit migrated from https://github.com/dotnet/corefx/commit/
bab7da282613120288759dd7b7d3ff7d42dc00cf
dotnet-maestro-bot [Wed, 6 Feb 2019 03:12:41 +0000 (19:12 -0800)]
Update ProjectNTfs, ProjectNTfsTestILC to beta-27405-00, beta-27405-00, respectively
Commit migrated from https://github.com/dotnet/corefx/commit/
9cce85f7f2001b79f0fa3f9f4bf38e67b4ec25e2
Hugh Bellamy [Wed, 6 Feb 2019 03:34:50 +0000 (03:34 +0000)]
Increase Serialization.Primitives coverage (dotnet/corefx#35101)
Commit migrated from https://github.com/dotnet/corefx/commit/
e7a6ae6df547cb48112e8df712db7c0252871e13
George Stocker [Wed, 6 Feb 2019 03:33:52 +0000 (22:33 -0500)]
Fixed Initialized misspelling on unit tests (dotnet/corefx#35108)
Commit migrated from https://github.com/dotnet/corefx/commit/
382183fa612bfdce65fb8a837e4a89b8d80d0966
Santiago Fernandez Madero [Wed, 6 Feb 2019 00:43:28 +0000 (16:43 -0800)]
Add build batching for official builds (dotnet/corefx#35122)
Commit migrated from https://github.com/dotnet/corefx/commit/
55d782a76e3021b7979b91198d78145d6399be54
Jose Perez Rodriguez [Wed, 6 Feb 2019 00:18:14 +0000 (16:18 -0800)]
Adding readme to source package and changing the nested file path. (dotnet/corefx#35089)
* Adding readme to source package and changing the nested file path.
* Address feedback and add README.md to None
* Adding new class to descriptions.json
Commit migrated from https://github.com/dotnet/corefx/commit/
92eda9e19a886cbf7f8c7e97680df42a3ca1a2be
Afsaneh Rafighi [Tue, 5 Feb 2019 22:54:02 +0000 (14:54 -0800)]
Merge pull request dotnet/corefx#34880 from Wraith2/sqlfeature-getfieldvaluexml
SqlClient enhancement enable GetFieldValue<XmlReader>
Commit migrated from https://github.com/dotnet/corefx/commit/
9007057ab6ba649c67dbca2a422d997075404e6c
Tomas Weinfurt [Tue, 5 Feb 2019 22:39:38 +0000 (14:39 -0800)]
remove instrumentation and move unreliable tests to Outerloop (dotnet/corefx#35113)
Commit migrated from https://github.com/dotnet/corefx/commit/
da8f7ea039030dea3f5808df0ee90d0e206af4e2
Jeremy Barton [Tue, 5 Feb 2019 21:59:08 +0000 (13:59 -0800)]
Restore the Linux X509Certificates tests to 0 SafeX509Handle finalizations
Since the last drive down to zero finalizations (ensuring no platform-induced ones) a few have slipped back in. This caused unnecessary distraction while
investigating a different problem.
This also leaves the "print a stack trace during finalization" code in place for DEBUG builds, behind an environment variable check (cached at type load).
Commit migrated from https://github.com/dotnet/corefx/commit/
5012dfe0813bf9f3eaf7a6460671e07ea048fd52
Hugh Bellamy [Tue, 5 Feb 2019 10:06:01 +0000 (10:06 +0000)]
Add more System.Json tests and remove dead xunit workarounds (dotnet/corefx#35057)
* Add more Json tests and remove old xunit workarounds
* Move files to the right place
* Fix tests
Commit migrated from https://github.com/dotnet/corefx/commit/
53b8e52dbf12355ce845230f6bbe6c5425bb73e6
Hugh Bellamy [Tue, 5 Feb 2019 00:00:19 +0000 (00:00 +0000)]
Cleanup doc comments in ComponentModel.Primitives (dotnet/corefx#35056)
* Cleanup doc comments in ComponentModel.Primitives
* Pr feedback, remove incorrect comment
Commit migrated from https://github.com/dotnet/corefx/commit/
53a33cf2662ac8c9a45d13067012d80cf0ba6956
Tanner Gooding [Mon, 4 Feb 2019 23:53:03 +0000 (15:53 -0800)]
Adding some tests for double/float roundtripping. (dotnet/corefx#35083)
Commit migrated from https://github.com/dotnet/corefx/commit/
404af492722040b61cc9268cdc6f2d5fc76699b8
Viktor Hofer [Mon, 4 Feb 2019 23:52:11 +0000 (00:52 +0100)]
Fix uapaot binaryformatter tests (dotnet/corefx#35079)
Commit migrated from https://github.com/dotnet/corefx/commit/
61a8b5b02aa88772d2a73d643cfeb20bf3715458
Hugh Bellamy [Mon, 4 Feb 2019 14:55:42 +0000 (14:55 +0000)]
Increase code coverage of System.ComponentModel.Primitives to 100% (dotnet/corefx#35055)
* Increase code coverage of System.ComponentModel.Primitives to 100%
* Move files to right folder
Commit migrated from https://github.com/dotnet/corefx/commit/
81c116a55d8788f563a8e02c21c9388bdf681647
dotnet-maestro[bot] [Sun, 3 Feb 2019 16:38:37 +0000 (16:38 +0000)]
Update dependencies from dotnet/coreclr (dotnet/corefx#35051)
* Update dependencies from https://github.com/dotnet/coreclr build
20190201.72
This change updates the following dependencies
- Microsoft.NET.Sdk.IL - 3.0.0-preview-27401-72
- Microsoft.NETCore.ILAsm - 3.0.0-preview-27401-72
- Microsoft.NETCore.Runtime.CoreCLR - 3.0.0-preview-27401-72
* Update dependencies from https://github.com/dotnet/coreclr build
20190202.72
This change updates the following dependencies
- Microsoft.NET.Sdk.IL - 3.0.0-preview-27402-72
- Microsoft.NETCore.ILAsm - 3.0.0-preview-27402-72
- Microsoft.NETCore.Runtime.CoreCLR - 3.0.0-preview-27402-72
* Fixing various tests that have new behavior due to the string formatting changes for double/float.
Commit migrated from https://github.com/dotnet/corefx/commit/
ebf1c9753ab5624c967b0dbd352b1e73805b1fe5
Filip Navara [Sun, 3 Feb 2019 01:35:39 +0000 (02:35 +0100)]
Move Interop.GetTimestamp.cs to shared CoreLib partition. (dotnet/corefx#35031)
Commit migrated from https://github.com/dotnet/corefx/commit/
c28f9c24d236d4d254d8299897e981ccf6492431
dotnet-maestro-bot [Sat, 2 Feb 2019 06:49:37 +0000 (22:49 -0800)]
Update ProjectNTfs, ProjectNTfsTestILC to beta-27401-00, beta-27401-00, respectively
Commit migrated from https://github.com/dotnet/corefx/commit/
c8da75f0b3fa5742d4aa9b4456be8cc9f4835511
Jan Kotas [Sat, 2 Feb 2019 08:09:09 +0000 (00:09 -0800)]
Cleanup security permission and resource consumption attribute references (dotnet/corefx#35042)
Commit migrated from https://github.com/dotnet/corefx/commit/
2c2e4a599889652ec579a870054b0f8915ea70fd
Ben Gribaudo [Sat, 2 Feb 2019 01:09:16 +0000 (19:09 -0600)]
Adding Kill(bool entireProcessTree) -- terminates a process tree (dotnet/corefx#34147)
* Adding Kill(bool entireProcessTree)
* Slightly cleaning up NtQueryInformationProcess interop code
* Trimming down PROCESSINFOCLASS enum members
* Refactoring--adjusting indents, changing param from ref to out, etc.
* Revising NtQueryInformationProcess-related code
* Comment & indentation tweaks
* TryGetParentProcessId -> GetParentProcessId rename/refactoring -- includes eliminating the output parameter
* Removing UAP double-definition of KillTree()
* Moving code so that not included in Uap build & tests so that not included in Uap and NetFx builds
* Moving relevant code from Windows -> Win32
* Moving relevant code from Windows -> Win32
* Working to satisfy contract for Uap (code written to fail test to verify that it works)
* Typo fix (missing return signature)
* Removing unneeded Uap-specific test file
* Adding temp. test to verify that UAP CI is catching test failures.
* Using lists (vs. enumerables) as test assert arguments
* Giving Kill() a moment to take effect
* Removing whitespace
* Removing irrelevant comment
* Revising initial check that ensures process has started.
* Moving process tree creation outside of finally
* Adding retry logic to tests
* Adjusting retry times/delay
* Adding backoff to retry helper
* Introducing non-auto-dispose variant of CreateProcess; refactoring
* Improving exception handling
* Moving catch
* Minor refactoring/reformatting
* Testing test execution by CI
* Partially removing code testing CI system
* Experimenting with implementing on OSX
* Adding cast
* Re-adding [ActiveIssue] attribute accidentally removed
* Re-adding inadvertently-removed commented-out test attributes
* Allowing aggregated Win32Exceptions to propagate out; disallowing calling Kill(true) on tree containing caller
* Adjusting test attributes, removing CI verification test, adjusting expected exception
* Marking non-local process test as platform-specific
* Adding PlatformNotSupported throw for Uap.
* Adding missing closing XML tag
* XML doc tag tweak
* Cleaning up two merge artifacts (whitespace + comment)
* Adding console output for debugging
* Fixing typo
* Removing logging to console
* Removing unused parameter
* Unix & OSX exception tweaks
* Variable rename
* Whitespace tweak
* Refactoring IsInTreeOf to use @danmosemsft's optimization suggestion; Renaming method
* Missed a rename
* Tweaking
* Reworking IsSelfOrDescendant to use refactored GetChildProcesses
* Minor fix
* Applying minor tweaks suggested by @krwq
* Adding a delay safety cutoff to RetryWithBackoff per
@krwq's suggestion.
* Adjusting backoff delay max to 10 seconds.
* IsSelfOrDescendant -> IsSelfOrDescendantOf
* Unix: If Stop() fails, don't try to continue with the process (thanks @tmds!).
* Fixing typo.
* Adding comments about kill/stop returning before termination/stopping completes.
* Adding comment.
Commit migrated from https://github.com/dotnet/corefx/commit/
81bd671efda5db20fae1eb381aeff2cf8ea727ac
Hugh Bellamy [Sat, 2 Feb 2019 00:00:18 +0000 (00:00 +0000)]
Add TypeConverterAttribute tests and fix bugs (dotnet/corefx#35019)
Commit migrated from https://github.com/dotnet/corefx/commit/
93ecfc6e1e5646328b85e113409de7797774fb97
Santiago Fernandez Madero [Fri, 1 Feb 2019 23:50:55 +0000 (15:50 -0800)]
Filter symbols by shipping and non-shipping for BAR metadata (dotnet/corefx#35028)
Commit migrated from https://github.com/dotnet/corefx/commit/
75a42d467d617b04cd4c0daae8ff185cb82bc73b
Stephen Toub [Fri, 1 Feb 2019 19:57:35 +0000 (14:57 -0500)]
Remove stale warning 420 pragmas (dotnet/corefx#35023)
It used to be that the CS0420 warning ("a reference to a volatile field will not be treated as volatile") would fire when a volatile was used with an Interlocked.* operation. That warning was unnecessary, as Interlocked.* would itself provide the relevant barriers, and these functions were special cased in Roslyn a long time ago. But there are still lots of places where pragmas disabling the warning have stuck around. I'm deleting them.
Commit migrated from https://github.com/dotnet/corefx/commit/
8b3446f4e8ad1a7b19c7298e20396629c6e0092e
Santiago Fernandez Madero [Fri, 1 Feb 2019 19:25:46 +0000 (11:25 -0800)]
Move corefx dependencies to itself to consume from BAR (dotnet/corefx#34981)
Commit migrated from https://github.com/dotnet/corefx/commit/
38c9269a1152be6f5b157f78b1d95c4bb1997127
dotnet-maestro-bot [Fri, 1 Feb 2019 18:07:37 +0000 (10:07 -0800)]
Update CoreFx, ProjectNTfs, ProjectNTfsTestILC to preview.19101.1, beta-27401-00, beta-27401-00, respectively (dotnet/corefx#35015)
Commit migrated from https://github.com/dotnet/corefx/commit/
bd3cb6968320e3f2fc0397036e7420e774e1b558